In [2]:
!pip install shap
Collecting shap
  Obtaining dependency information for shap from https://files.pythonhosted.org/packages/04/58/b2ea558ec8d9ed3728e83dfacb1b920c54a1a1f6feee2632c04676c3c1e9/shap-0.46.0-cp312-cp312-win_amd64.whl.metadata
  Using cached shap-0.46.0-cp312-cp312-win_amd64.whl.metadata (25 kB)
Requirement already satisfied: numpy in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from shap) (2.0.2)
Requirement already satisfied: scipy in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from shap) (1.14.1)
Requirement already satisfied: scikit-learn in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from shap) (1.5.2)
Requirement already satisfied: pandas in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from shap) (2.2.3)
Requirement already satisfied: tqdm>=4.27.0 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from shap) (4.67.1)
Requirement already satisfied: packaging>20.9 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from shap) (24.1)
Requirement already satisfied: slicer==0.0.8 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from shap) (0.0.8)
Collecting numba (from shap)
  Obtaining dependency information for numba from https://files.pythonhosted.org/packages/ca/bd/0fe29fcd1b6a8de479a4ed25c6e56470e467e3611c079d55869ceef2b6d1/numba-0.60.0-cp312-cp312-win_amd64.whl.metadata
  Using cached numba-0.60.0-cp312-cp312-win_amd64.whl.metadata (2.8 kB)
Collecting cloudpickle (from shap)
  Obtaining dependency information for cloudpickle from https://files.pythonhosted.org/packages/48/41/e1d85ca3cab0b674e277c8c4f678cf66a91cd2cecf93df94353a606fe0db/cloudpickle-3.1.0-py3-none-any.whl.metadata
  Using cached cloudpickle-3.1.0-py3-none-any.whl.metadata (7.0 kB)
Requirement already satisfied: colorama in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from tqdm>=4.27.0->shap) (0.4.6)
Collecting llvmlite<0.44,>=0.43.0dev0 (from numba->shap)
  Obtaining dependency information for llvmlite<0.44,>=0.43.0dev0 from https://files.pythonhosted.org/packages/c6/94/dea10e263655ce78d777e78d904903faae39d1fc440762be4a9dc46bed49/llvmlite-0.43.0-cp312-cp312-win_amd64.whl.metadata
  Using cached llvmlite-0.43.0-cp312-cp312-win_amd64.whl.metadata (4.9 kB)
Requirement already satisfied: python-dateutil>=2.8.2 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from pandas->shap) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from pandas->shap) (2024.2)
Requirement already satisfied: tzdata>=2022.7 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from pandas->shap) (2023.3)
Requirement already satisfied: joblib>=1.2.0 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from scikit-learn->shap) (1.4.2)
Requirement already satisfied: threadpoolctl>=3.1.0 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from scikit-learn->shap) (3.5.0)
Requirement already satisfied: six>=1.5 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from python-dateutil>=2.8.2->pandas->shap) (1.16.0)
Using cached shap-0.46.0-cp312-cp312-win_amd64.whl (456 kB)
Using cached cloudpickle-3.1.0-py3-none-any.whl (22 kB)
Using cached numba-0.60.0-cp312-cp312-win_amd64.whl (2.7 MB)
Using cached llvmlite-0.43.0-cp312-cp312-win_amd64.whl (28.1 MB)
Installing collected packages: llvmlite, cloudpickle, numba, shap
Successfully installed cloudpickle-3.1.0 llvmlite-0.43.0 numba-0.60.0 shap-0.46.0
[notice] A new release of pip is available: 23.2.1 -> 24.3.1
[notice] To update, run: python.exe -m pip install --upgrade pip
In [3]:
!pip install lime
Requirement already satisfied: lime in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (0.2.0.1)
Requirement already satisfied: matplotlib in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from lime) (3.9.2)
Requirement already satisfied: numpy in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from lime) (2.0.2)
Requirement already satisfied: scipy in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from lime) (1.14.1)
Requirement already satisfied: tqdm in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from lime) (4.67.1)
Requirement already satisfied: scikit-learn>=0.18 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from lime) (1.5.2)
Requirement already satisfied: scikit-image>=0.12 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from lime) (0.24.0)
Requirement already satisfied: networkx>=2.8 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from scikit-image>=0.12->lime) (3.4.2)
Requirement already satisfied: pillow>=9.1 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from scikit-image>=0.12->lime) (10.4.0)
Requirement already satisfied: imageio>=2.33 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from scikit-image>=0.12->lime) (2.36.0)
Requirement already satisfied: tifffile>=2022.8.12 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from scikit-image>=0.12->lime) (2024.9.20)
Requirement already satisfied: packaging>=21 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from scikit-image>=0.12->lime) (24.1)
Requirement already satisfied: lazy-loader>=0.4 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from scikit-image>=0.12->lime) (0.4)
Requirement already satisfied: joblib>=1.2.0 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from scikit-learn>=0.18->lime) (1.4.2)
Requirement already satisfied: threadpoolctl>=3.1.0 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from scikit-learn>=0.18->lime) (3.5.0)
Requirement already satisfied: contourpy>=1.0.1 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from matplotlib->lime) (1.3.0)
Requirement already satisfied: cycler>=0.10 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from matplotlib->lime) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from matplotlib->lime) (4.53.1)
Requirement already satisfied: kiwisolver>=1.3.1 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from matplotlib->lime) (1.4.5)
Requirement already satisfied: pyparsing>=2.3.1 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from matplotlib->lime) (3.1.4)
Requirement already satisfied: python-dateutil>=2.7 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from matplotlib->lime) (2.9.0.post0)
Requirement already satisfied: colorama in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from tqdm->lime) (0.4.6)
Requirement already satisfied: six>=1.5 in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from python-dateutil>=2.7->matplotlib->lime) (1.16.0)
[notice] A new release of pip is available: 23.2.1 -> 24.3.1
[notice] To update, run: python.exe -m pip install --upgrade pip
In [5]:
!pip install openpyxl
Collecting openpyxl
  Obtaining dependency information for openpyxl from https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl.metadata
  Downloading openpyxl-3.1.5-py2.py3-none-any.whl.metadata (2.5 kB)
Collecting et-xmlfile (from openpyxl)
  Obtaining dependency information for et-xmlfile from https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl.metadata
  Downloading et_xmlfile-2.0.0-py3-none-any.whl.metadata (2.7 kB)
Downloading openpyxl-3.1.5-py2.py3-none-any.whl (250 kB)
   ---------------------------------------- 0.0/250.9 kB ? eta -:--:--
   - -------------------------------------- 10.2/250.9 kB ? eta -:--:--
   ------------------- -------------------- 122.9/250.9 kB 1.8 MB/s eta 0:00:01
   ---------------------------------------- 250.9/250.9 kB 2.6 MB/s eta 0:00:00
Downloading et_xmlfile-2.0.0-py3-none-any.whl (18 kB)
Installing collected packages: et-xmlfile, openpyxl
Successfully installed et-xmlfile-2.0.0 openpyxl-3.1.5
[notice] A new release of pip is available: 23.2.1 -> 24.3.1
[notice] To update, run: python.exe -m pip install --upgrade pip
In [1]:
import pandas as pd
import numpy as np
from sklearn.model_selection import cross_val_score, GridSearchCV, train_test_split
from sklearn.linear_model import LinearRegression, Ridge, Lasso
from sklearn.neighbors import KNeighborsRegressor
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

# Import LIME
import lime.lime_tabular

# Load the dataset
data = pd.read_excel(r"C:/Users/dhanu/OneDrive/Desktop/machine learning/ML TRAIN DATASETS/gpt2 embeddings.xlsx")

# Drop any irrelevant columns, such as text or index columns
data = data.drop(columns=['Equation', 'GPT2_Embedding'], errors='ignore')

# Features and target variable
X = data.iloc[:, :-1]  # All columns except the last one
y = data['output']     # Target variable

# Standardize the data
scaler = StandardScaler()
X = scaler.fit_transform(X)

# Apply PCA for dimensionality reduction
pca = PCA(n_components=0.95)  # Preserve 95% of variance
X_pca = pca.fit_transform(X)

# Train-test split
X_train, X_test, y_train, y_test = train_test_split(X_pca, y, test_size=0.2, random_state=42)

# List of regression models up to Decision Tree
models = [
    ('Linear Regression', LinearRegression()),
    ('Ridge Regression', Ridge()),
    ('Lasso Regression', Lasso()),
    ('KNN', KNeighborsRegressor()),
    ('Decision Tree', DecisionTreeRegressor())
]

# Function to calculate and return performance metrics
def evaluate_model(model, X, y):
    # Cross-validation with 10 folds
    cv_scores_rmse = cross_val_score(model, X, y, cv=10, scoring='neg_mean_squared_error')
    cv_scores_r2 = cross_val_score(model, X, y, cv=10, scoring='r2')

    # Compute mean and standard deviation of CV scores
    rmse_mean = -cv_scores_rmse.mean()  # Convert negative RMSE to positive
    rmse_std = cv_scores_rmse.std()
    r2_mean = cv_scores_r2.mean()
    r2_std = cv_scores_r2.std()

    return rmse_mean, rmse_std, r2_mean, r2_std

# Hyperparameter tuning using GridSearchCV for the selected models
param_grids = {
    'Linear Regression': {},  # No hyperparameters for linear regression
    'Ridge Regression': {'alpha': [0.1, 1, 10, 100]},
    'Lasso Regression': {'alpha': [0.1, 1, 10]},
    'KNN': {'n_neighbors': [3, 5, 10, 15], 'weights': ['uniform', 'distance']},
    'Decision Tree': {'max_depth': [None, 5, 10, 20], 'min_samples_split': [2, 5, 10]}
}

# Perform hyperparameter tuning and evaluation for each model
for name, model in models:
    print(f"\nTraining and hyperparameter tuning for {name}...")
    param_grid = param_grids.get(name, {})

    # Skip models with no parameters to tune
    if param_grid:
        grid_search = GridSearchCV(model, param_grid, cv=10, scoring='neg_mean_squared_error', n_jobs=-1)
        grid_search.fit(X_train, y_train)
        best_model = grid_search.best_estimator_
        print(f"Best {name} model: {grid_search.best_params_}")
    else:
        best_model = model
        best_model.fit(X_train, y_train)  # Explicitly fit the model if no hyperparameters are tuned

    # Cross-validation after tuning
    rmse_mean, rmse_std, r2_mean, r2_std = evaluate_model(best_model, X_train, y_train)
    print(f"Cross-validation after tuning for {name}:")
    print(f"CV Mean RMSE (after tuning): {rmse_mean}, CV RMSE Std: {rmse_std}")
    print(f"CV Mean R² (after tuning): {r2_mean}, CV R² Std: {r2_std}")

    # Evaluate the model on the test data
    y_pred = best_model.predict(X_test)
    
    # Apply clipping strategy to keep predictions within the 0-5 range
    y_pred_clipped = np.clip(y_pred, 0, 5)
    
    test_rmse = np.sqrt(mean_squared_error(y_test, y_pred_clipped))
    test_r2 = r2_score(y_test, y_pred_clipped)

    print(f"\nTest RMSE: {test_rmse}")
    print(f"Test R²: {test_r2}")

    # LIME Explanation
    print(f"\nLIME Explanation for {name}:")
    explainer = lime.lime_tabular.LimeTabularExplainer(X_train, training_labels=y_train, mode='regression', verbose=True, feature_names=data.columns[:-1])
    lime_exp = explainer.explain_instance(X_test[0], best_model.predict, num_features=5)
    lime_exp.show_in_notebook()
Training and hyperparameter tuning for Linear Regression...
Cross-validation after tuning for Linear Regression:
CV Mean RMSE (after tuning): 0.34735736022123026, CV RMSE Std: 0.0511733615527798
CV Mean R² (after tuning): 0.8537205153844616, CV R² Std: 0.02436128878256942

Test RMSE: 0.5758369710338836
Test R²: 0.8697499057263555

LIME Explanation for Linear Regression:
Intercept 2.1411892745318455
Prediction_local [4.90563032]
Right: 6.057587543803062
Training and hyperparameter tuning for Ridge Regression...
Best Ridge Regression model: {'alpha': 100}
Cross-validation after tuning for Ridge Regression:
CV Mean RMSE (after tuning): 0.34208842353388536, CV RMSE Std: 0.05107372275185737
CV Mean R² (after tuning): 0.8559935336690273, CV R² Std: 0.023783216423366355

Test RMSE: 0.5764020445191669
Test R²: 0.8694941493543226

LIME Explanation for Ridge Regression:
Intercept 2.1038890545211353
Prediction_local [4.94020879]
Right: 6.054538729981886
Training and hyperparameter tuning for Lasso Regression...
Best Lasso Regression model: {'alpha': 0.1}
Cross-validation after tuning for Lasso Regression:
CV Mean RMSE (after tuning): 0.44042065777873274, CV RMSE Std: 0.06475827450454574
CV Mean R² (after tuning): 0.8146543130001127, CV R² Std: 0.0294914147433113

Test RMSE: 0.665670059799786
Test R²: 0.8259407914917344

LIME Explanation for Lasso Regression:
Intercept 2.149955798263336
Prediction_local [4.85690765]
Right: 6.18389488781707
Training and hyperparameter tuning for KNN...
Best KNN model: {'n_neighbors': 10, 'weights': 'distance'}
Cross-validation after tuning for KNN:
CV Mean RMSE (after tuning): 0.29859715056904274, CV RMSE Std: 0.05672512741500096
CV Mean R² (after tuning): 0.8746196733046062, CV R² Std: 0.02339129143523977

Test RMSE: 0.5986855969869909
Test R²: 0.859208454332221

LIME Explanation for KNN:
Intercept 2.1683287487742775
Prediction_local [3.70117063]
Right: 5.0
Training and hyperparameter tuning for Decision Tree...
Best Decision Tree model: {'max_depth': None, 'min_samples_split': 10}
Cross-validation after tuning for Decision Tree:
CV Mean RMSE (after tuning): 0.621380522213854, CV RMSE Std: 0.08999946295504557
CV Mean R² (after tuning): 0.7403775846738363, CV R² Std: 0.04379052607184457

Test RMSE: 0.8239336108733007
Test R²: 0.7333366102130742

LIME Explanation for Decision Tree:
Intercept 2.35377744265572
Prediction_local [4.14237041]
Right: 5.0
In [3]:
!pip install xgboost
Collecting xgboost
  Obtaining dependency information for xgboost from https://files.pythonhosted.org/packages/70/58/2f94976df39470fb00eec2cb4f914dde44cd0df8d96483208bf7db4bc97e/xgboost-2.1.3-py3-none-win_amd64.whl.metadata
  Downloading xgboost-2.1.3-py3-none-win_amd64.whl.metadata (2.1 kB)
Requirement already satisfied: numpy in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from xgboost) (2.0.2)
Requirement already satisfied: scipy in c:\users\dhanu\appdata\local\programs\python\python312\lib\site-packages (from xgboost) (1.14.1)
Downloading xgboost-2.1.3-py3-none-win_amd64.whl (124.9 MB)
   ---------------------------------------- 0.0/124.9 MB ? eta -:--:--
   ---------------------------------------- 0.0/124.9 MB ? eta -:--:--
   ---------------------------------------- 0.0/124.9 MB 435.7 kB/s eta 0:04:47
   ---------------------------------------- 0.0/124.9 MB 487.6 kB/s eta 0:04:17
   ---------------------------------------- 0.1/124.9 MB 751.6 kB/s eta 0:02:47
   ---------------------------------------- 0.1/124.9 MB 722.1 kB/s eta 0:02:53
   ---------------------------------------- 0.1/124.9 MB 653.6 kB/s eta 0:03:11
   ---------------------------------------- 0.2/124.9 MB 655.4 kB/s eta 0:03:11
   ---------------------------------------- 0.2/124.9 MB 689.6 kB/s eta 0:03:01
   ---------------------------------------- 0.3/124.9 MB 749.3 kB/s eta 0:02:47
   ---------------------------------------- 0.3/124.9 MB 744.2 kB/s eta 0:02:48
   ---------------------------------------- 0.3/124.9 MB 706.2 kB/s eta 0:02:57
   ---------------------------------------- 0.3/124.9 MB 746.0 kB/s eta 0:02:47
   ---------------------------------------- 0.4/124.9 MB 813.6 kB/s eta 0:02:33
   ---------------------------------------- 0.5/124.9 MB 823.7 kB/s eta 0:02:32
   ---------------------------------------- 0.5/124.9 MB 793.0 kB/s eta 0:02:37
   ---------------------------------------- 0.6/124.9 MB 862.7 kB/s eta 0:02:25
   ---------------------------------------- 0.7/124.9 MB 999.0 kB/s eta 0:02:05
   ---------------------------------------- 0.7/124.9 MB 954.2 kB/s eta 0:02:11
   ---------------------------------------- 0.7/124.9 MB 955.7 kB/s eta 0:02:10
   ---------------------------------------- 0.7/124.9 MB 955.7 kB/s eta 0:02:10
   ---------------------------------------- 0.9/124.9 MB 1.1 MB/s eta 0:01:53
   ---------------------------------------- 1.0/124.9 MB 1.1 MB/s eta 0:01:49
   ---------------------------------------- 1.0/124.9 MB 1.1 MB/s eta 0:01:52
   ---------------------------------------- 1.0/124.9 MB 1.1 MB/s eta 0:01:58
   ---------------------------------------- 1.2/124.9 MB 1.2 MB/s eta 0:01:45
   ---------------------------------------- 1.3/124.9 MB 1.2 MB/s eta 0:01:42
   ---------------------------------------- 1.3/124.9 MB 1.2 MB/s eta 0:01:44
   ---------------------------------------- 1.4/124.9 MB 1.2 MB/s eta 0:01:46
   ---------------------------------------- 1.5/124.9 MB 1.2 MB/s eta 0:01:41
   ---------------------------------------- 1.6/124.9 MB 1.3 MB/s eta 0:01:38
    --------------------------------------- 1.6/124.9 MB 1.2 MB/s eta 0:01:40
    --------------------------------------- 1.6/124.9 MB 1.2 MB/s eta 0:01:41
    --------------------------------------- 1.7/124.9 MB 1.2 MB/s eta 0:01:41
    --------------------------------------- 1.8/124.9 MB 1.3 MB/s eta 0:01:36
    --------------------------------------- 1.9/124.9 MB 1.3 MB/s eta 0:01:34
    --------------------------------------- 1.9/124.9 MB 1.3 MB/s eta 0:01:35
    --------------------------------------- 1.9/124.9 MB 1.3 MB/s eta 0:01:38
    --------------------------------------- 2.0/124.9 MB 1.3 MB/s eta 0:01:37
    --------------------------------------- 2.2/124.9 MB 1.3 MB/s eta 0:01:32
    --------------------------------------- 2.2/124.9 MB 1.3 MB/s eta 0:01:33
    --------------------------------------- 2.2/124.9 MB 1.3 MB/s eta 0:01:34
    --------------------------------------- 2.2/124.9 MB 1.3 MB/s eta 0:01:36
    --------------------------------------- 2.4/124.9 MB 1.4 MB/s eta 0:01:31
    --------------------------------------- 2.5/124.9 MB 1.4 MB/s eta 0:01:30
    --------------------------------------- 2.5/124.9 MB 1.3 MB/s eta 0:01:32
    --------------------------------------- 2.5/124.9 MB 1.3 MB/s eta 0:01:33
    --------------------------------------- 2.7/124.9 MB 1.4 MB/s eta 0:01:29
    --------------------------------------- 2.8/124.9 MB 1.4 MB/s eta 0:01:27
    --------------------------------------- 2.8/124.9 MB 1.4 MB/s eta 0:01:29
    --------------------------------------- 2.8/124.9 MB 1.4 MB/s eta 0:01:29
    --------------------------------------- 2.9/124.9 MB 1.4 MB/s eta 0:01:29
    --------------------------------------- 2.9/124.9 MB 1.4 MB/s eta 0:01:29
    --------------------------------------- 3.0/124.9 MB 1.4 MB/s eta 0:01:30
    --------------------------------------- 3.0/124.9 MB 1.4 MB/s eta 0:01:30
   - -------------------------------------- 3.2/124.9 MB 1.4 MB/s eta 0:01:29
   - -------------------------------------- 3.2/124.9 MB 1.4 MB/s eta 0:01:29
   - -------------------------------------- 3.3/124.9 MB 1.4 MB/s eta 0:01:30
   - -------------------------------------- 3.4/124.9 MB 1.4 MB/s eta 0:01:28
   - -------------------------------------- 3.4/124.9 MB 1.4 MB/s eta 0:01:27
   - -------------------------------------- 3.5/124.9 MB 1.4 MB/s eta 0:01:28
   - -------------------------------------- 3.6/124.9 MB 1.4 MB/s eta 0:01:26
   - -------------------------------------- 3.7/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 3.7/124.9 MB 1.4 MB/s eta 0:01:26
   - -------------------------------------- 3.8/124.9 MB 1.4 MB/s eta 0:01:26
   - -------------------------------------- 3.9/124.9 MB 1.4 MB/s eta 0:01:24
   - -------------------------------------- 4.0/124.9 MB 1.5 MB/s eta 0:01:24
   - -------------------------------------- 4.0/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 4.1/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 4.2/124.9 MB 1.5 MB/s eta 0:01:24
   - -------------------------------------- 4.3/124.9 MB 1.5 MB/s eta 0:01:23
   - -------------------------------------- 4.4/124.9 MB 1.5 MB/s eta 0:01:23
   - -------------------------------------- 4.5/124.9 MB 1.5 MB/s eta 0:01:22
   - -------------------------------------- 4.5/124.9 MB 1.5 MB/s eta 0:01:22
   - -------------------------------------- 4.5/124.9 MB 1.5 MB/s eta 0:01:22
   - -------------------------------------- 4.6/124.9 MB 1.5 MB/s eta 0:01:23
   - -------------------------------------- 4.7/124.9 MB 1.5 MB/s eta 0:01:23
   - -------------------------------------- 4.7/124.9 MB 1.5 MB/s eta 0:01:23
   - -------------------------------------- 4.8/124.9 MB 1.5 MB/s eta 0:01:22
   - -------------------------------------- 4.9/124.9 MB 1.5 MB/s eta 0:01:22
   - -------------------------------------- 4.9/124.9 MB 1.5 MB/s eta 0:01:23
   - -------------------------------------- 5.0/124.9 MB 1.4 MB/s eta 0:01:24
   - -------------------------------------- 5.0/124.9 MB 1.4 MB/s eta 0:01:24
   - -------------------------------------- 5.0/124.9 MB 1.4 MB/s eta 0:01:26
   - -------------------------------------- 5.1/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 5.1/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 5.1/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 5.2/124.9 MB 1.4 MB/s eta 0:01:26
   - -------------------------------------- 5.2/124.9 MB 1.4 MB/s eta 0:01:26
   - -------------------------------------- 5.3/124.9 MB 1.4 MB/s eta 0:01:26
   - -------------------------------------- 5.5/124.9 MB 1.4 MB/s eta 0:01:24
   - -------------------------------------- 5.6/124.9 MB 1.4 MB/s eta 0:01:24
   - -------------------------------------- 5.6/124.9 MB 1.4 MB/s eta 0:01:24
   - -------------------------------------- 5.6/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 5.7/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 5.7/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 5.7/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 5.9/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 5.9/124.9 MB 1.4 MB/s eta 0:01:25
   - -------------------------------------- 6.0/124.9 MB 1.4 MB/s eta 0:01:24
   - -------------------------------------- 6.2/124.9 MB 1.4 MB/s eta 0:01:23
   -- ------------------------------------- 6.3/124.9 MB 1.5 MB/s eta 0:01:22
   -- ------------------------------------- 6.5/124.9 MB 1.5 MB/s eta 0:01:20
   -- ------------------------------------- 6.6/124.9 MB 1.5 MB/s eta 0:01:19
   -- ------------------------------------- 6.8/124.9 MB 1.5 MB/s eta 0:01:18
   -- ------------------------------------- 7.0/124.9 MB 1.5 MB/s eta 0:01:17
   -- ------------------------------------- 7.2/124.9 MB 1.6 MB/s eta 0:01:15
   -- ------------------------------------- 7.3/124.9 MB 1.6 MB/s eta 0:01:14
   -- ------------------------------------- 7.5/124.9 MB 1.6 MB/s eta 0:01:13
   -- ------------------------------------- 7.7/124.9 MB 1.6 MB/s eta 0:01:12
   -- ------------------------------------- 7.9/124.9 MB 1.7 MB/s eta 0:01:10
   -- ------------------------------------- 7.9/124.9 MB 1.7 MB/s eta 0:01:10
   -- ------------------------------------- 8.2/124.9 MB 1.7 MB/s eta 0:01:09
   -- ------------------------------------- 8.3/124.9 MB 1.7 MB/s eta 0:01:09
   -- ------------------------------------- 8.5/124.9 MB 1.7 MB/s eta 0:01:08
   -- ------------------------------------- 8.5/124.9 MB 1.7 MB/s eta 0:01:08
   -- ------------------------------------- 8.6/124.9 MB 1.7 MB/s eta 0:01:08
   -- ------------------------------------- 8.8/124.9 MB 1.8 MB/s eta 0:01:07
   -- ------------------------------------- 9.0/124.9 MB 1.8 MB/s eta 0:01:06
   -- ------------------------------------- 9.2/124.9 MB 1.8 MB/s eta 0:01:05
   -- ------------------------------------- 9.3/124.9 MB 1.8 MB/s eta 0:01:05
   --- ------------------------------------ 9.5/124.9 MB 1.8 MB/s eta 0:01:04
   --- ------------------------------------ 9.6/124.9 MB 1.8 MB/s eta 0:01:03
   --- ------------------------------------ 9.8/124.9 MB 1.9 MB/s eta 0:01:02
   --- ------------------------------------ 10.1/124.9 MB 1.9 MB/s eta 0:01:01
   --- ------------------------------------ 10.3/124.9 MB 1.9 MB/s eta 0:01:00
   --- ------------------------------------ 10.3/124.9 MB 1.9 MB/s eta 0:01:00
   --- ------------------------------------ 10.4/124.9 MB 2.0 MB/s eta 0:00:59
   --- ------------------------------------ 10.6/124.9 MB 2.0 MB/s eta 0:00:57
   --- ------------------------------------ 10.7/124.9 MB 2.1 MB/s eta 0:00:56
   --- ------------------------------------ 10.9/124.9 MB 2.1 MB/s eta 0:00:56
   --- ------------------------------------ 11.1/124.9 MB 2.1 MB/s eta 0:00:54
   --- ------------------------------------ 11.2/124.9 MB 2.1 MB/s eta 0:00:54
   --- ------------------------------------ 11.4/124.9 MB 2.2 MB/s eta 0:00:53
   --- ------------------------------------ 11.5/124.9 MB 2.2 MB/s eta 0:00:53
   --- ------------------------------------ 11.6/124.9 MB 2.2 MB/s eta 0:00:52
   --- ------------------------------------ 11.8/124.9 MB 2.2 MB/s eta 0:00:51
   --- ------------------------------------ 11.9/124.9 MB 2.2 MB/s eta 0:00:51
   --- ------------------------------------ 12.1/124.9 MB 2.3 MB/s eta 0:00:50
   --- ------------------------------------ 12.2/124.9 MB 2.3 MB/s eta 0:00:49
   --- ------------------------------------ 12.4/124.9 MB 2.3 MB/s eta 0:00:49
   ---- ----------------------------------- 12.6/124.9 MB 2.4 MB/s eta 0:00:48
   ---- ----------------------------------- 12.8/124.9 MB 2.4 MB/s eta 0:00:47
   ---- ----------------------------------- 12.9/124.9 MB 2.4 MB/s eta 0:00:47
   ---- ----------------------------------- 13.0/124.9 MB 2.4 MB/s eta 0:00:47
   ---- ----------------------------------- 13.2/124.9 MB 2.5 MB/s eta 0:00:45
   ---- ----------------------------------- 13.4/124.9 MB 2.5 MB/s eta 0:00:44
   ---- ----------------------------------- 13.5/124.9 MB 2.6 MB/s eta 0:00:44
   ---- ----------------------------------- 13.7/124.9 MB 2.7 MB/s eta 0:00:42
   ---- ----------------------------------- 13.9/124.9 MB 2.7 MB/s eta 0:00:42
   ---- ----------------------------------- 14.0/124.9 MB 2.7 MB/s eta 0:00:41
   ---- ----------------------------------- 14.2/124.9 MB 2.7 MB/s eta 0:00:41
   ---- ----------------------------------- 14.4/124.9 MB 2.8 MB/s eta 0:00:40
   ---- ----------------------------------- 14.6/124.9 MB 2.8 MB/s eta 0:00:40
   ---- ----------------------------------- 14.7/124.9 MB 2.8 MB/s eta 0:00:40
   ---- ----------------------------------- 14.8/124.9 MB 2.9 MB/s eta 0:00:39
   ---- ----------------------------------- 15.0/124.9 MB 2.9 MB/s eta 0:00:38
   ---- ----------------------------------- 15.2/124.9 MB 3.0 MB/s eta 0:00:37
   ---- ----------------------------------- 15.3/124.9 MB 3.2 MB/s eta 0:00:35
   ---- ----------------------------------- 15.4/124.9 MB 3.2 MB/s eta 0:00:34
   ----- ---------------------------------- 15.7/124.9 MB 3.4 MB/s eta 0:00:33
   ----- ---------------------------------- 15.9/124.9 MB 3.5 MB/s eta 0:00:31
   ----- ---------------------------------- 16.1/124.9 MB 3.6 MB/s eta 0:00:31
   ----- ---------------------------------- 16.2/124.9 MB 3.6 MB/s eta 0:00:30
   ----- ---------------------------------- 16.4/124.9 MB 3.7 MB/s eta 0:00:30
   ----- ---------------------------------- 16.6/124.9 MB 3.7 MB/s eta 0:00:30
   ----- ---------------------------------- 16.7/124.9 MB 3.7 MB/s eta 0:00:30
   ----- ---------------------------------- 16.9/124.9 MB 3.7 MB/s eta 0:00:30
   ----- ---------------------------------- 17.0/124.9 MB 3.7 MB/s eta 0:00:30
   ----- ---------------------------------- 17.1/124.9 MB 3.7 MB/s eta 0:00:30
   ----- ---------------------------------- 17.4/124.9 MB 3.6 MB/s eta 0:00:30
   ----- ---------------------------------- 17.5/124.9 MB 3.7 MB/s eta 0:00:30
   ----- ---------------------------------- 17.6/124.9 MB 3.7 MB/s eta 0:00:30
   ----- ---------------------------------- 17.8/124.9 MB 3.6 MB/s eta 0:00:30
   ----- ---------------------------------- 18.0/124.9 MB 3.6 MB/s eta 0:00:30
   ----- ---------------------------------- 18.1/124.9 MB 3.6 MB/s eta 0:00:30
   ----- ---------------------------------- 18.3/124.9 MB 3.6 MB/s eta 0:00:30
   ----- ---------------------------------- 18.5/124.9 MB 3.7 MB/s eta 0:00:30
   ----- ---------------------------------- 18.6/124.9 MB 3.7 MB/s eta 0:00:29
   ------ --------------------------------- 18.8/124.9 MB 3.7 MB/s eta 0:00:29
   ------ --------------------------------- 18.9/124.9 MB 3.7 MB/s eta 0:00:29
   ------ --------------------------------- 19.1/124.9 MB 3.7 MB/s eta 0:00:29
   ------ --------------------------------- 19.3/124.9 MB 3.7 MB/s eta 0:00:29
   ------ --------------------------------- 19.4/124.9 MB 3.7 MB/s eta 0:00:29
   ------ --------------------------------- 19.6/124.9 MB 3.7 MB/s eta 0:00:29
   ------ --------------------------------- 19.7/124.9 MB 3.7 MB/s eta 0:00:29
   ------ --------------------------------- 19.9/124.9 MB 3.6 MB/s eta 0:00:29
   ------ --------------------------------- 20.1/124.9 MB 3.6 MB/s eta 0:00:29
   ------ --------------------------------- 20.1/124.9 MB 3.6 MB/s eta 0:00:30
   ------ --------------------------------- 20.2/124.9 MB 3.5 MB/s eta 0:00:30
   ------ --------------------------------- 20.4/124.9 MB 3.5 MB/s eta 0:00:30
   ------ --------------------------------- 20.6/124.9 MB 3.6 MB/s eta 0:00:30
   ------ --------------------------------- 20.8/124.9 MB 3.6 MB/s eta 0:00:29
   ------ --------------------------------- 20.9/124.9 MB 3.7 MB/s eta 0:00:29
   ------ --------------------------------- 21.1/124.9 MB 3.6 MB/s eta 0:00:29
   ------ --------------------------------- 21.2/124.9 MB 3.6 MB/s eta 0:00:29
   ------ --------------------------------- 21.4/124.9 MB 3.6 MB/s eta 0:00:29
   ------ --------------------------------- 21.5/124.9 MB 3.6 MB/s eta 0:00:29
   ------ --------------------------------- 21.5/124.9 MB 3.6 MB/s eta 0:00:29
   ------ --------------------------------- 21.6/124.9 MB 3.5 MB/s eta 0:00:30
   ------ --------------------------------- 21.6/124.9 MB 3.5 MB/s eta 0:00:30
   ------ --------------------------------- 21.7/124.9 MB 3.5 MB/s eta 0:00:30
   ------ --------------------------------- 21.8/124.9 MB 3.5 MB/s eta 0:00:30
   ------- -------------------------------- 21.9/124.9 MB 3.4 MB/s eta 0:00:31
   ------- -------------------------------- 22.0/124.9 MB 3.4 MB/s eta 0:00:31
   ------- -------------------------------- 22.2/124.9 MB 3.4 MB/s eta 0:00:31
   ------- -------------------------------- 22.3/124.9 MB 3.4 MB/s eta 0:00:30
   ------- -------------------------------- 22.5/124.9 MB 3.4 MB/s eta 0:00:30
   ------- -------------------------------- 22.7/124.9 MB 3.4 MB/s eta 0:00:30
   ------- -------------------------------- 22.8/124.9 MB 3.4 MB/s eta 0:00:30
   ------- -------------------------------- 22.9/124.9 MB 3.4 MB/s eta 0:00:30
   ------- -------------------------------- 23.0/124.9 MB 3.4 MB/s eta 0:00:31
   ------- -------------------------------- 23.0/124.9 MB 3.4 MB/s eta 0:00:31
   ------- -------------------------------- 23.1/124.9 MB 3.3 MB/s eta 0:00:31
   ------- -------------------------------- 23.3/124.9 MB 3.4 MB/s eta 0:00:31
   ------- -------------------------------- 23.4/124.9 MB 3.3 MB/s eta 0:00:31
   ------- -------------------------------- 23.4/124.9 MB 3.3 MB/s eta 0:00:31
   ------- -------------------------------- 23.4/124.9 MB 3.3 MB/s eta 0:00:31
   ------- -------------------------------- 23.5/124.9 MB 3.2 MB/s eta 0:00:32
   ------- -------------------------------- 23.5/124.9 MB 3.2 MB/s eta 0:00:32
   ------- -------------------------------- 23.7/124.9 MB 3.2 MB/s eta 0:00:32
   ------- -------------------------------- 23.8/124.9 MB 3.2 MB/s eta 0:00:32
   ------- -------------------------------- 23.9/124.9 MB 3.2 MB/s eta 0:00:32
   ------- -------------------------------- 24.1/124.9 MB 3.2 MB/s eta 0:00:32
   ------- -------------------------------- 24.3/124.9 MB 3.2 MB/s eta 0:00:32
   ------- -------------------------------- 24.5/124.9 MB 3.2 MB/s eta 0:00:32
   ------- -------------------------------- 24.6/124.9 MB 3.2 MB/s eta 0:00:32
   ------- -------------------------------- 24.8/124.9 MB 3.2 MB/s eta 0:00:32
   ------- -------------------------------- 24.8/124.9 MB 3.1 MB/s eta 0:00:32
   ------- -------------------------------- 25.0/124.9 MB 3.1 MB/s eta 0:00:33
   ------- -------------------------------- 25.0/124.9 MB 3.1 MB/s eta 0:00:33
   -------- ------------------------------- 25.1/124.9 MB 3.1 MB/s eta 0:00:33
   -------- ------------------------------- 25.2/124.9 MB 3.1 MB/s eta 0:00:33
   -------- ------------------------------- 25.3/124.9 MB 3.1 MB/s eta 0:00:33
   -------- ------------------------------- 25.4/124.9 MB 3.0 MB/s eta 0:00:33
   -------- ------------------------------- 25.5/124.9 MB 3.0 MB/s eta 0:00:33
   -------- ------------------------------- 25.6/124.9 MB 3.0 MB/s eta 0:00:33
   -------- ------------------------------- 25.8/124.9 MB 3.0 MB/s eta 0:00:33
   -------- ------------------------------- 26.0/124.9 MB 3.0 MB/s eta 0:00:33
   -------- ------------------------------- 26.1/124.9 MB 3.0 MB/s eta 0:00:33
   -------- ------------------------------- 26.3/124.9 MB 3.0 MB/s eta 0:00:33
   -------- ------------------------------- 26.3/124.9 MB 3.0 MB/s eta 0:00:33
   -------- ------------------------------- 26.4/124.9 MB 3.0 MB/s eta 0:00:34
   -------- ------------------------------- 26.6/124.9 MB 3.0 MB/s eta 0:00:34
   -------- ------------------------------- 26.8/124.9 MB 3.0 MB/s eta 0:00:34
   -------- ------------------------------- 26.8/124.9 MB 3.0 MB/s eta 0:00:34
   -------- ------------------------------- 26.8/124.9 MB 3.0 MB/s eta 0:00:34
   -------- ------------------------------- 26.9/124.9 MB 2.9 MB/s eta 0:00:34
   -------- ------------------------------- 27.0/124.9 MB 2.9 MB/s eta 0:00:35
   -------- ------------------------------- 27.2/124.9 MB 2.9 MB/s eta 0:00:34
   -------- ------------------------------- 27.3/124.9 MB 2.9 MB/s eta 0:00:34
   -------- ------------------------------- 27.3/124.9 MB 2.9 MB/s eta 0:00:34
   -------- ------------------------------- 27.3/124.9 MB 2.9 MB/s eta 0:00:34
   -------- ------------------------------- 27.3/124.9 MB 2.9 MB/s eta 0:00:34
   -------- ------------------------------- 27.5/124.9 MB 2.8 MB/s eta 0:00:35
   -------- ------------------------------- 27.6/124.9 MB 2.8 MB/s eta 0:00:35
   -------- ------------------------------- 27.8/124.9 MB 2.8 MB/s eta 0:00:35
   -------- ------------------------------- 27.8/124.9 MB 2.8 MB/s eta 0:00:35
   -------- ------------------------------- 28.0/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 28.1/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 28.3/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 28.4/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 28.5/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 28.7/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 28.8/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 29.0/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 29.2/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 29.3/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 29.4/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 29.6/124.9 MB 2.7 MB/s eta 0:00:35
   --------- ------------------------------ 29.7/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 29.9/124.9 MB 2.7 MB/s eta 0:00:35
   --------- ------------------------------ 30.1/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 30.3/124.9 MB 2.8 MB/s eta 0:00:35
   --------- ------------------------------ 30.5/124.9 MB 2.8 MB/s eta 0:00:34
   --------- ------------------------------ 30.5/124.9 MB 2.8 MB/s eta 0:00:34
   --------- ------------------------------ 30.7/124.9 MB 2.8 MB/s eta 0:00:34
   --------- ------------------------------ 30.9/124.9 MB 2.8 MB/s eta 0:00:34
   --------- ------------------------------ 31.0/124.9 MB 2.8 MB/s eta 0:00:34
   --------- ------------------------------ 31.2/124.9 MB 2.8 MB/s eta 0:00:34
   ---------- ----------------------------- 31.4/124.9 MB 2.8 MB/s eta 0:00:34
   ---------- ----------------------------- 31.5/124.9 MB 2.8 MB/s eta 0:00:34
   ---------- ----------------------------- 31.5/124.9 MB 2.8 MB/s eta 0:00:34
   ---------- ----------------------------- 31.7/124.9 MB 2.8 MB/s eta 0:00:33
   ---------- ----------------------------- 31.8/124.9 MB 2.8 MB/s eta 0:00:34
   ---------- ----------------------------- 31.9/124.9 MB 2.9 MB/s eta 0:00:33
   ---------- ----------------------------- 32.1/124.9 MB 2.9 MB/s eta 0:00:33
   ---------- ----------------------------- 32.2/124.9 MB 2.9 MB/s eta 0:00:33
   ---------- ----------------------------- 32.4/124.9 MB 2.9 MB/s eta 0:00:32
   ---------- ----------------------------- 32.5/124.9 MB 2.9 MB/s eta 0:00:33
   ---------- ----------------------------- 32.7/124.9 MB 2.9 MB/s eta 0:00:32
   ---------- ----------------------------- 33.0/124.9 MB 2.9 MB/s eta 0:00:32
   ---------- ----------------------------- 33.2/124.9 MB 2.9 MB/s eta 0:00:32
   ---------- ----------------------------- 33.2/124.9 MB 3.0 MB/s eta 0:00:31
   ---------- ----------------------------- 33.4/124.9 MB 3.0 MB/s eta 0:00:31
   ---------- ----------------------------- 33.6/124.9 MB 3.1 MB/s eta 0:00:30
   ---------- ----------------------------- 33.8/124.9 MB 3.1 MB/s eta 0:00:30
   ---------- ----------------------------- 33.9/124.9 MB 3.1 MB/s eta 0:00:30
   ---------- ----------------------------- 34.1/124.9 MB 3.1 MB/s eta 0:00:30
   ---------- ----------------------------- 34.2/124.9 MB 3.1 MB/s eta 0:00:30
   ---------- ----------------------------- 34.3/124.9 MB 3.1 MB/s eta 0:00:30
   ----------- ---------------------------- 34.5/124.9 MB 3.1 MB/s eta 0:00:29
   ----------- ---------------------------- 34.7/124.9 MB 3.1 MB/s eta 0:00:29
   ----------- ---------------------------- 34.8/124.9 MB 3.1 MB/s eta 0:00:29
   ----------- ---------------------------- 35.0/124.9 MB 3.1 MB/s eta 0:00:29
   ----------- ---------------------------- 35.3/124.9 MB 3.2 MB/s eta 0:00:28
   ----------- ---------------------------- 35.5/124.9 MB 3.2 MB/s eta 0:00:28
   ----------- ---------------------------- 35.7/124.9 MB 3.3 MB/s eta 0:00:27
   ----------- ---------------------------- 35.8/124.9 MB 3.3 MB/s eta 0:00:27
   ----------- ---------------------------- 35.9/124.9 MB 3.3 MB/s eta 0:00:28
   ----------- ---------------------------- 36.1/124.9 MB 3.3 MB/s eta 0:00:27
   ----------- ---------------------------- 36.3/124.9 MB 3.3 MB/s eta 0:00:27
   ----------- ---------------------------- 36.4/124.9 MB 3.3 MB/s eta 0:00:27
   ----------- ---------------------------- 36.6/124.9 MB 3.3 MB/s eta 0:00:27
   ----------- ---------------------------- 36.8/124.9 MB 3.4 MB/s eta 0:00:27
   ----------- ---------------------------- 36.9/124.9 MB 3.4 MB/s eta 0:00:27
   ----------- ---------------------------- 37.1/124.9 MB 3.5 MB/s eta 0:00:26
   ----------- ---------------------------- 37.2/124.9 MB 3.5 MB/s eta 0:00:26
   ------------ --------------------------- 37.5/124.9 MB 3.5 MB/s eta 0:00:25
   ------------ --------------------------- 37.6/124.9 MB 3.7 MB/s eta 0:00:24
   ------------ --------------------------- 37.7/124.9 MB 3.6 MB/s eta 0:00:24
   ------------ --------------------------- 37.9/124.9 MB 3.6 MB/s eta 0:00:24
   ------------ --------------------------- 38.1/124.9 MB 3.7 MB/s eta 0:00:24
   ------------ --------------------------- 38.2/124.9 MB 3.7 MB/s eta 0:00:24
   ------------ --------------------------- 38.4/124.9 MB 3.7 MB/s eta 0:00:24
   ------------ --------------------------- 38.6/124.9 MB 3.7 MB/s eta 0:00:24
   ------------ --------------------------- 38.9/124.9 MB 3.8 MB/s eta 0:00:23
   ------------ --------------------------- 39.1/124.9 MB 3.8 MB/s eta 0:00:23
   ------------ --------------------------- 39.3/124.9 MB 3.8 MB/s eta 0:00:23
   ------------ --------------------------- 39.5/124.9 MB 3.9 MB/s eta 0:00:23
   ------------ --------------------------- 39.7/124.9 MB 3.9 MB/s eta 0:00:22
   ------------ --------------------------- 39.9/124.9 MB 3.9 MB/s eta 0:00:22
   ------------ --------------------------- 40.1/124.9 MB 3.9 MB/s eta 0:00:22
   ------------ --------------------------- 40.3/124.9 MB 3.9 MB/s eta 0:00:22
   ------------ --------------------------- 40.4/124.9 MB 3.9 MB/s eta 0:00:22
   ------------- -------------------------- 40.7/124.9 MB 3.9 MB/s eta 0:00:22
   ------------- -------------------------- 40.9/124.9 MB 3.9 MB/s eta 0:00:22
   ------------- -------------------------- 41.1/124.9 MB 4.0 MB/s eta 0:00:22
   ------------- -------------------------- 41.3/124.9 MB 4.0 MB/s eta 0:00:22
   ------------- -------------------------- 41.4/124.9 MB 3.9 MB/s eta 0:00:22
   ------------- -------------------------- 41.7/124.9 MB 4.0 MB/s eta 0:00:21
   ------------- -------------------------- 41.9/124.9 MB 4.1 MB/s eta 0:00:21
   ------------- -------------------------- 42.1/124.9 MB 4.2 MB/s eta 0:00:20
   ------------- -------------------------- 42.4/124.9 MB 4.2 MB/s eta 0:00:20
   ------------- -------------------------- 42.6/124.9 MB 4.3 MB/s eta 0:00:20
   ------------- -------------------------- 42.8/124.9 MB 4.3 MB/s eta 0:00:20
   ------------- -------------------------- 42.9/124.9 MB 4.3 MB/s eta 0:00:20
   ------------- -------------------------- 43.2/124.9 MB 4.3 MB/s eta 0:00:20
   ------------- -------------------------- 43.4/124.9 MB 4.3 MB/s eta 0:00:20
   ------------- -------------------------- 43.6/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 43.7/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 43.9/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 44.0/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 44.2/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 44.3/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 44.6/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 44.8/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 45.0/124.9 MB 4.4 MB/s eta 0:00:19
   -------------- ------------------------- 45.2/124.9 MB 4.4 MB/s eta 0:00:19
   -------------- ------------------------- 45.5/124.9 MB 4.4 MB/s eta 0:00:19
   -------------- ------------------------- 45.6/124.9 MB 4.4 MB/s eta 0:00:19
   -------------- ------------------------- 45.9/124.9 MB 4.4 MB/s eta 0:00:18
   -------------- ------------------------- 46.1/124.9 MB 4.4 MB/s eta 0:00:18
   -------------- ------------------------- 46.1/124.9 MB 4.4 MB/s eta 0:00:18
   -------------- ------------------------- 46.2/124.9 MB 4.4 MB/s eta 0:00:19
   -------------- ------------------------- 46.2/124.9 MB 4.4 MB/s eta 0:00:19
   -------------- ------------------------- 46.2/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 46.2/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 46.2/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 46.2/124.9 MB 4.3 MB/s eta 0:00:19
   -------------- ------------------------- 46.3/124.9 MB 4.0 MB/s eta 0:00:20
   -------------- ------------------------- 46.4/124.9 MB 4.0 MB/s eta 0:00:20
   -------------- ------------------------- 46.4/124.9 MB 4.0 MB/s eta 0:00:20
   -------------- ------------------------- 46.6/124.9 MB 3.9 MB/s eta 0:00:21
   -------------- ------------------------- 46.6/124.9 MB 3.9 MB/s eta 0:00:21
   -------------- ------------------------- 46.6/124.9 MB 3.9 MB/s eta 0:00:21
   -------------- ------------------------- 46.6/124.9 MB 3.9 MB/s eta 0:00:21
   -------------- ------------------------- 46.6/124.9 MB 3.9 MB/s eta 0:00:21
   -------------- ------------------------- 46.6/124.9 MB 3.9 MB/s eta 0:00:21
   -------------- ------------------------- 46.6/124.9 MB 3.9 MB/s eta 0:00:21
   -------------- ------------------------- 46.6/124.9 MB 3.5 MB/s eta 0:00:23
   -------------- ------------------------- 46.7/124.9 MB 3.5 MB/s eta 0:00:23
   --------------- ------------------------ 46.9/124.9 MB 3.5 MB/s eta 0:00:23
   --------------- ------------------------ 47.0/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 47.3/124.9 MB 3.5 MB/s eta 0:00:23
   --------------- ------------------------ 47.4/124.9 MB 3.5 MB/s eta 0:00:23
   --------------- ------------------------ 47.4/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 47.6/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 47.8/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 48.0/124.9 MB 3.5 MB/s eta 0:00:23
   --------------- ------------------------ 48.1/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 48.4/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 48.6/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 48.7/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 48.9/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 49.0/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 49.3/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 49.4/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 49.5/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 49.7/124.9 MB 3.4 MB/s eta 0:00:23
   --------------- ------------------------ 49.9/124.9 MB 3.3 MB/s eta 0:00:23
   --------------- ------------------------ 49.9/124.9 MB 3.3 MB/s eta 0:00:23
   ---------------- ----------------------- 50.2/124.9 MB 3.3 MB/s eta 0:00:23
   ---------------- ----------------------- 50.4/124.9 MB 3.4 MB/s eta 0:00:23
   ---------------- ----------------------- 50.7/124.9 MB 3.4 MB/s eta 0:00:23
   ---------------- ----------------------- 51.0/124.9 MB 3.4 MB/s eta 0:00:22
   ---------------- ----------------------- 51.2/124.9 MB 3.4 MB/s eta 0:00:22
   ---------------- ----------------------- 51.4/124.9 MB 3.4 MB/s eta 0:00:22
   ---------------- ----------------------- 51.6/124.9 MB 3.4 MB/s eta 0:00:22
   ---------------- ----------------------- 51.8/124.9 MB 3.4 MB/s eta 0:00:22
   ---------------- ----------------------- 51.8/124.9 MB 3.3 MB/s eta 0:00:22
   ---------------- ----------------------- 51.9/124.9 MB 3.3 MB/s eta 0:00:22
   ---------------- ----------------------- 52.1/124.9 MB 3.3 MB/s eta 0:00:23
   ---------------- ----------------------- 52.3/124.9 MB 3.3 MB/s eta 0:00:22
   ---------------- ----------------------- 52.4/124.9 MB 3.3 MB/s eta 0:00:22
   ---------------- ----------------------- 52.6/124.9 MB 3.3 MB/s eta 0:00:23
   ---------------- ----------------------- 52.8/124.9 MB 3.3 MB/s eta 0:00:22
   ---------------- ----------------------- 53.0/124.9 MB 3.3 MB/s eta 0:00:22
   ----------------- ---------------------- 53.2/124.9 MB 3.3 MB/s eta 0:00:23
   ----------------- ---------------------- 53.3/124.9 MB 3.2 MB/s eta 0:00:23
   ----------------- ---------------------- 53.6/124.9 MB 3.3 MB/s eta 0:00:22
   ----------------- ---------------------- 53.8/124.9 MB 3.3 MB/s eta 0:00:22
   ----------------- ---------------------- 54.0/124.9 MB 3.3 MB/s eta 0:00:22
   ----------------- ---------------------- 54.2/124.9 MB 3.3 MB/s eta 0:00:22
   ----------------- ---------------------- 54.4/124.9 MB 3.3 MB/s eta 0:00:22
   ----------------- ---------------------- 54.7/124.9 MB 3.3 MB/s eta 0:00:22
   ----------------- ---------------------- 54.9/124.9 MB 3.3 MB/s eta 0:00:22
   ----------------- ---------------------- 55.1/124.9 MB 3.3 MB/s eta 0:00:21
   ----------------- ---------------------- 55.2/124.9 MB 3.3 MB/s eta 0:00:22
   ----------------- ---------------------- 55.3/124.9 MB 3.3 MB/s eta 0:00:22
   ----------------- ---------------------- 55.4/124.9 MB 3.3 MB/s eta 0:00:22
   ----------------- ---------------------- 55.6/124.9 MB 3.2 MB/s eta 0:00:22
   ----------------- ---------------------- 55.8/124.9 MB 3.2 MB/s eta 0:00:22
   ----------------- ---------------------- 55.9/124.9 MB 3.2 MB/s eta 0:00:22
   ----------------- ---------------------- 56.1/124.9 MB 3.2 MB/s eta 0:00:22
   ------------------ --------------------- 56.3/124.9 MB 3.2 MB/s eta 0:00:22
   ------------------ --------------------- 56.5/124.9 MB 3.5 MB/s eta 0:00:20
   ------------------ --------------------- 56.7/124.9 MB 3.6 MB/s eta 0:00:19
   ------------------ --------------------- 56.9/124.9 MB 4.1 MB/s eta 0:00:17
   ------------------ --------------------- 57.1/124.9 MB 4.1 MB/s eta 0:00:17
   ------------------ --------------------- 57.3/124.9 MB 4.1 MB/s eta 0:00:17
   ------------------ --------------------- 57.5/124.9 MB 4.1 MB/s eta 0:00:17
   ------------------ --------------------- 57.7/124.9 MB 4.2 MB/s eta 0:00:17
   ------------------ --------------------- 57.9/124.9 MB 4.3 MB/s eta 0:00:16
   ------------------ --------------------- 58.1/124.9 MB 4.3 MB/s eta 0:00:16
   ------------------ --------------------- 58.4/124.9 MB 4.3 MB/s eta 0:00:16
   ------------------ --------------------- 58.5/124.9 MB 4.3 MB/s eta 0:00:16
   ------------------ --------------------- 58.7/124.9 MB 4.3 MB/s eta 0:00:16
   ------------------ --------------------- 58.9/124.9 MB 4.3 MB/s eta 0:00:16
   ------------------ --------------------- 59.0/124.9 MB 4.3 MB/s eta 0:00:16
   ------------------ --------------------- 59.1/124.9 MB 4.2 MB/s eta 0:00:16
   ------------------ --------------------- 59.3/124.9 MB 4.2 MB/s eta 0:00:16
   ------------------ --------------------- 59.3/124.9 MB 4.2 MB/s eta 0:00:16
   ------------------- -------------------- 59.5/124.9 MB 4.2 MB/s eta 0:00:16
   ------------------- -------------------- 59.6/124.9 MB 4.2 MB/s eta 0:00:16
   ------------------- -------------------- 59.7/124.9 MB 4.1 MB/s eta 0:00:16
   ------------------- -------------------- 59.8/124.9 MB 4.1 MB/s eta 0:00:16
   ------------------- -------------------- 60.0/124.9 MB 4.1 MB/s eta 0:00:16
   ------------------- -------------------- 60.1/124.9 MB 4.1 MB/s eta 0:00:16
   ------------------- -------------------- 60.1/124.9 MB 4.0 MB/s eta 0:00:17
   ------------------- -------------------- 60.3/124.9 MB 4.0 MB/s eta 0:00:16
   ------------------- -------------------- 60.4/124.9 MB 4.0 MB/s eta 0:00:17
   ------------------- -------------------- 60.5/124.9 MB 4.0 MB/s eta 0:00:17
   ------------------- -------------------- 60.8/124.9 MB 4.0 MB/s eta 0:00:17
   ------------------- -------------------- 60.8/124.9 MB 4.0 MB/s eta 0:00:17
   ------------------- -------------------- 61.0/124.9 MB 3.9 MB/s eta 0:00:17
   ------------------- -------------------- 61.1/124.9 MB 3.9 MB/s eta 0:00:17
   ------------------- -------------------- 61.3/124.9 MB 3.8 MB/s eta 0:00:17
   ------------------- -------------------- 61.4/124.9 MB 3.8 MB/s eta 0:00:17
   ------------------- -------------------- 61.6/124.9 MB 3.8 MB/s eta 0:00:17
   ------------------- -------------------- 61.8/124.9 MB 3.8 MB/s eta 0:00:17
   ------------------- -------------------- 62.0/124.9 MB 3.8 MB/s eta 0:00:17
   ------------------- -------------------- 62.1/124.9 MB 3.8 MB/s eta 0:00:17
   ------------------- -------------------- 62.2/124.9 MB 3.8 MB/s eta 0:00:17
   ------------------- -------------------- 62.4/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 62.5/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 62.7/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 62.8/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 63.0/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 63.2/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 63.4/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 63.6/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 63.8/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 64.0/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 64.1/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 64.3/124.9 MB 3.8 MB/s eta 0:00:17
   -------------------- ------------------- 64.6/124.9 MB 3.8 MB/s eta 0:00:16
   -------------------- ------------------- 64.6/124.9 MB 3.8 MB/s eta 0:00:16
   -------------------- ------------------- 64.8/124.9 MB 3.7 MB/s eta 0:00:17
   -------------------- ------------------- 64.9/124.9 MB 3.7 MB/s eta 0:00:17
   -------------------- ------------------- 65.0/124.9 MB 3.7 MB/s eta 0:00:17
   -------------------- ------------------- 65.2/124.9 MB 3.7 MB/s eta 0:00:17
   -------------------- ------------------- 65.3/124.9 MB 3.6 MB/s eta 0:00:17
   -------------------- ------------------- 65.4/124.9 MB 3.7 MB/s eta 0:00:17
   -------------------- ------------------- 65.6/124.9 MB 3.6 MB/s eta 0:00:17
   --------------------- ------------------ 65.7/124.9 MB 3.7 MB/s eta 0:00:17
   --------------------- ------------------ 65.9/124.9 MB 3.7 MB/s eta 0:00:17
   --------------------- ------------------ 65.9/124.9 MB 3.6 MB/s eta 0:00:17
   --------------------- ------------------ 66.1/124.9 MB 3.6 MB/s eta 0:00:17
   --------------------- ------------------ 66.3/124.9 MB 3.6 MB/s eta 0:00:17
   --------------------- ------------------ 66.4/124.9 MB 3.6 MB/s eta 0:00:17
   --------------------- ------------------ 66.4/124.9 MB 3.5 MB/s eta 0:00:17
   --------------------- ------------------ 66.5/124.9 MB 3.6 MB/s eta 0:00:17
   --------------------- ------------------ 66.8/124.9 MB 3.5 MB/s eta 0:00:17
   --------------------- ------------------ 67.0/124.9 MB 3.6 MB/s eta 0:00:17
   --------------------- ------------------ 67.3/124.9 MB 3.6 MB/s eta 0:00:17
   --------------------- ------------------ 67.5/124.9 MB 3.6 MB/s eta 0:00:17
   --------------------- ------------------ 67.7/124.9 MB 3.6 MB/s eta 0:00:16
   --------------------- ------------------ 68.0/124.9 MB 3.6 MB/s eta 0:00:16
   --------------------- ------------------ 68.2/124.9 MB 3.6 MB/s eta 0:00:16
   --------------------- ------------------ 68.5/124.9 MB 3.6 MB/s eta 0:00:16
   --------------------- ------------------ 68.7/124.9 MB 3.6 MB/s eta 0:00:16
   ---------------------- ----------------- 69.0/124.9 MB 3.6 MB/s eta 0:00:16
   ---------------------- ----------------- 69.2/124.9 MB 3.7 MB/s eta 0:00:16
   ---------------------- ----------------- 69.4/124.9 MB 3.7 MB/s eta 0:00:16
   ---------------------- ----------------- 69.6/124.9 MB 3.8 MB/s eta 0:00:15
   ---------------------- ----------------- 69.7/124.9 MB 3.7 MB/s eta 0:00:15
   ---------------------- ----------------- 70.1/124.9 MB 3.9 MB/s eta 0:00:15
   ---------------------- ----------------- 70.3/124.9 MB 3.9 MB/s eta 0:00:15
   ---------------------- ----------------- 70.5/124.9 MB 4.0 MB/s eta 0:00:14
   ---------------------- ----------------- 70.6/124.9 MB 4.0 MB/s eta 0:00:14
   ---------------------- ----------------- 70.9/124.9 MB 4.0 MB/s eta 0:00:14
   ---------------------- ----------------- 71.2/124.9 MB 4.1 MB/s eta 0:00:13
   ---------------------- ----------------- 71.3/124.9 MB 4.1 MB/s eta 0:00:13
   ---------------------- ----------------- 71.6/124.9 MB 4.2 MB/s eta 0:00:13
   ---------------------- ----------------- 71.7/124.9 MB 4.2 MB/s eta 0:00:13
   ----------------------- ---------------- 71.9/124.9 MB 4.2 MB/s eta 0:00:13
   ----------------------- ---------------- 72.0/124.9 MB 4.2 MB/s eta 0:00:13
   ----------------------- ---------------- 72.3/124.9 MB 4.3 MB/s eta 0:00:13
   ----------------------- ---------------- 72.6/124.9 MB 4.3 MB/s eta 0:00:13
   ----------------------- ---------------- 72.8/124.9 MB 4.3 MB/s eta 0:00:13
   ----------------------- ---------------- 72.9/124.9 MB 4.3 MB/s eta 0:00:13
   ----------------------- ---------------- 72.9/124.9 MB 4.3 MB/s eta 0:00:13
   ----------------------- ---------------- 72.9/124.9 MB 4.3 MB/s eta 0:00:13
   ----------------------- ---------------- 72.9/124.9 MB 4.3 MB/s eta 0:00:13
   ----------------------- ---------------- 72.9/124.9 MB 4.3 MB/s eta 0:00:13
   ----------------------- ---------------- 72.9/124.9 MB 4.3 MB/s eta 0:00:13
   ----------------------- ---------------- 73.0/124.9 MB 3.9 MB/s eta 0:00:14
   ----------------------- ---------------- 73.3/124.9 MB 4.0 MB/s eta 0:00:14
   ----------------------- ---------------- 73.3/124.9 MB 3.9 MB/s eta 0:00:14
   ----------------------- ---------------- 73.5/124.9 MB 3.9 MB/s eta 0:00:14
   ----------------------- ---------------- 73.6/124.9 MB 3.9 MB/s eta 0:00:14
   ----------------------- ---------------- 73.8/124.9 MB 3.9 MB/s eta 0:00:14
   ----------------------- ---------------- 74.1/124.9 MB 3.9 MB/s eta 0:00:14
   ----------------------- ---------------- 74.3/124.9 MB 3.9 MB/s eta 0:00:13
   ----------------------- ---------------- 74.5/124.9 MB 3.9 MB/s eta 0:00:13
   ----------------------- ---------------- 74.5/124.9 MB 3.9 MB/s eta 0:00:13
   ----------------------- ---------------- 74.7/124.9 MB 3.9 MB/s eta 0:00:14
   ----------------------- ---------------- 74.8/124.9 MB 3.8 MB/s eta 0:00:14
   ----------------------- ---------------- 74.9/124.9 MB 3.9 MB/s eta 0:00:13
   ----------------------- ---------------- 74.9/124.9 MB 3.9 MB/s eta 0:00:13
   ----------------------- ---------------- 74.9/124.9 MB 3.9 MB/s eta 0:00:13
   ----------------------- ---------------- 74.9/124.9 MB 3.9 MB/s eta 0:00:13
   ------------------------ --------------- 75.1/124.9 MB 3.7 MB/s eta 0:00:14
   ------------------------ --------------- 75.2/124.9 MB 3.7 MB/s eta 0:00:14
   ------------------------ --------------- 75.4/124.9 MB 3.7 MB/s eta 0:00:14
   ------------------------ --------------- 75.6/124.9 MB 3.7 MB/s eta 0:00:14
   ------------------------ --------------- 75.7/124.9 MB 3.8 MB/s eta 0:00:14
   ------------------------ --------------- 76.0/124.9 MB 3.8 MB/s eta 0:00:14
   ------------------------ --------------- 76.2/124.9 MB 3.8 MB/s eta 0:00:13
   ------------------------ --------------- 76.3/124.9 MB 3.8 MB/s eta 0:00:13
   ------------------------ --------------- 76.4/124.9 MB 3.8 MB/s eta 0:00:13
   ------------------------ --------------- 76.7/124.9 MB 3.9 MB/s eta 0:00:13
   ------------------------ --------------- 76.9/124.9 MB 3.9 MB/s eta 0:00:13
   ------------------------ --------------- 77.1/124.9 MB 3.9 MB/s eta 0:00:13
   ------------------------ --------------- 77.3/124.9 MB 3.9 MB/s eta 0:00:13
   ------------------------ --------------- 77.5/124.9 MB 3.8 MB/s eta 0:00:13
   ------------------------ --------------- 77.7/124.9 MB 3.9 MB/s eta 0:00:13
   ------------------------ --------------- 77.9/124.9 MB 3.9 MB/s eta 0:00:13
   ------------------------- -------------- 78.1/124.9 MB 3.9 MB/s eta 0:00:13
   ------------------------- -------------- 78.3/124.9 MB 3.8 MB/s eta 0:00:13
   ------------------------- -------------- 78.4/124.9 MB 3.8 MB/s eta 0:00:13
   ------------------------- -------------- 78.5/124.9 MB 3.7 MB/s eta 0:00:13
   ------------------------- -------------- 78.7/124.9 MB 3.7 MB/s eta 0:00:13
   ------------------------- -------------- 79.0/124.9 MB 3.7 MB/s eta 0:00:13
   ------------------------- -------------- 79.3/124.9 MB 3.7 MB/s eta 0:00:13
   ------------------------- -------------- 79.4/124.9 MB 3.8 MB/s eta 0:00:13
   ------------------------- -------------- 79.6/124.9 MB 3.7 MB/s eta 0:00:13
   ------------------------- -------------- 79.8/124.9 MB 3.7 MB/s eta 0:00:13
   ------------------------- -------------- 79.9/124.9 MB 3.7 MB/s eta 0:00:13
   ------------------------- -------------- 80.2/124.9 MB 3.7 MB/s eta 0:00:13
   ------------------------- -------------- 80.3/124.9 MB 3.7 MB/s eta 0:00:13
   ------------------------- -------------- 80.6/124.9 MB 3.7 MB/s eta 0:00:12
   ------------------------- -------------- 80.7/124.9 MB 3.7 MB/s eta 0:00:13
   ------------------------- -------------- 81.0/124.9 MB 3.7 MB/s eta 0:00:12
   -------------------------- ------------- 81.2/124.9 MB 3.7 MB/s eta 0:00:12
   -------------------------- ------------- 81.5/124.9 MB 3.7 MB/s eta 0:00:12
   -------------------------- ------------- 81.7/124.9 MB 3.7 MB/s eta 0:00:12
   -------------------------- ------------- 82.0/124.9 MB 3.7 MB/s eta 0:00:12
   -------------------------- ------------- 82.2/124.9 MB 3.8 MB/s eta 0:00:12
   -------------------------- ------------- 82.5/124.9 MB 3.8 MB/s eta 0:00:12
   -------------------------- ------------- 82.6/124.9 MB 3.7 MB/s eta 0:00:12
   -------------------------- ------------- 82.8/124.9 MB 3.7 MB/s eta 0:00:12
   -------------------------- ------------- 83.0/124.9 MB 3.7 MB/s eta 0:00:12
   -------------------------- ------------- 83.3/124.9 MB 4.1 MB/s eta 0:00:11
   -------------------------- ------------- 83.5/124.9 MB 4.1 MB/s eta 0:00:11
   -------------------------- ------------- 83.7/124.9 MB 4.2 MB/s eta 0:00:10
   -------------------------- ------------- 84.0/124.9 MB 4.3 MB/s eta 0:00:10
   -------------------------- ------------- 84.2/124.9 MB 4.3 MB/s eta 0:00:10
   --------------------------- ------------ 84.4/124.9 MB 4.3 MB/s eta 0:00:10
   --------------------------- ------------ 84.5/124.9 MB 4.2 MB/s eta 0:00:10
   --------------------------- ------------ 84.7/124.9 MB 4.2 MB/s eta 0:00:10
   --------------------------- ------------ 84.9/124.9 MB 4.3 MB/s eta 0:00:10
   --------------------------- ------------ 85.1/124.9 MB 4.3 MB/s eta 0:00:10
   --------------------------- ------------ 85.3/124.9 MB 4.6 MB/s eta 0:00:09
   --------------------------- ------------ 85.4/124.9 MB 4.6 MB/s eta 0:00:09
   --------------------------- ------------ 85.6/124.9 MB 4.6 MB/s eta 0:00:09
   --------------------------- ------------ 85.8/124.9 MB 4.6 MB/s eta 0:00:09
   --------------------------- ------------ 85.9/124.9 MB 4.5 MB/s eta 0:00:09
   --------------------------- ------------ 86.1/124.9 MB 4.6 MB/s eta 0:00:09
   --------------------------- ------------ 86.2/124.9 MB 4.6 MB/s eta 0:00:09
   --------------------------- ------------ 86.5/124.9 MB 4.6 MB/s eta 0:00:09
   --------------------------- ------------ 86.7/124.9 MB 4.7 MB/s eta 0:00:09
   --------------------------- ------------ 86.9/124.9 MB 4.7 MB/s eta 0:00:09
   --------------------------- ------------ 87.0/124.9 MB 4.7 MB/s eta 0:00:09
   --------------------------- ------------ 87.3/124.9 MB 4.7 MB/s eta 0:00:09
   ---------------------------- ----------- 87.5/124.9 MB 4.7 MB/s eta 0:00:08
   ---------------------------- ----------- 87.7/124.9 MB 4.6 MB/s eta 0:00:09
   ---------------------------- ----------- 87.8/124.9 MB 4.6 MB/s eta 0:00:08
   ---------------------------- ----------- 88.1/124.9 MB 4.6 MB/s eta 0:00:08
   ---------------------------- ----------- 88.2/124.9 MB 4.7 MB/s eta 0:00:08
   ---------------------------- ----------- 88.4/124.9 MB 4.6 MB/s eta 0:00:08
   ---------------------------- ----------- 88.5/124.9 MB 4.6 MB/s eta 0:00:08
   ---------------------------- ----------- 88.5/124.9 MB 4.5 MB/s eta 0:00:09
   ---------------------------- ----------- 88.8/124.9 MB 4.6 MB/s eta 0:00:08
   ---------------------------- ----------- 89.0/124.9 MB 4.6 MB/s eta 0:00:08
   ---------------------------- ----------- 89.2/124.9 MB 4.6 MB/s eta 0:00:08
   ---------------------------- ----------- 89.4/124.9 MB 4.6 MB/s eta 0:00:08
   ---------------------------- ----------- 89.7/124.9 MB 4.6 MB/s eta 0:00:08
   ---------------------------- ----------- 89.9/124.9 MB 4.6 MB/s eta 0:00:08
   ---------------------------- ----------- 90.2/124.9 MB 4.7 MB/s eta 0:00:08
   ---------------------------- ----------- 90.4/124.9 MB 4.7 MB/s eta 0:00:08
   ----------------------------- ---------- 90.6/124.9 MB 4.7 MB/s eta 0:00:08
   ----------------------------- ---------- 90.9/124.9 MB 4.7 MB/s eta 0:00:08
   ----------------------------- ---------- 91.2/124.9 MB 4.8 MB/s eta 0:00:08
   ----------------------------- ---------- 91.4/124.9 MB 4.8 MB/s eta 0:00:07
   ----------------------------- ---------- 91.6/124.9 MB 4.8 MB/s eta 0:00:07
   ----------------------------- ---------- 91.9/124.9 MB 4.8 MB/s eta 0:00:07
   ----------------------------- ---------- 92.1/124.9 MB 4.8 MB/s eta 0:00:07
   ----------------------------- ---------- 92.3/124.9 MB 4.8 MB/s eta 0:00:07
   ----------------------------- ---------- 92.5/124.9 MB 4.7 MB/s eta 0:00:07
   ----------------------------- ---------- 92.8/124.9 MB 4.8 MB/s eta 0:00:07
   ----------------------------- ---------- 93.1/124.9 MB 4.8 MB/s eta 0:00:07
   ----------------------------- ---------- 93.2/124.9 MB 4.8 MB/s eta 0:00:07
   ----------------------------- ---------- 93.5/124.9 MB 4.8 MB/s eta 0:00:07
   ------------------------------ --------- 93.8/124.9 MB 4.8 MB/s eta 0:00:07
   ------------------------------ --------- 94.0/124.9 MB 4.8 MB/s eta 0:00:07
   ------------------------------ --------- 94.1/124.9 MB 4.8 MB/s eta 0:00:07
   ------------------------------ --------- 94.4/124.9 MB 4.7 MB/s eta 0:00:07
   ------------------------------ --------- 94.6/124.9 MB 4.8 MB/s eta 0:00:07
   ------------------------------ --------- 94.8/124.9 MB 4.8 MB/s eta 0:00:07
   ------------------------------ --------- 94.9/124.9 MB 4.7 MB/s eta 0:00:07
   ------------------------------ --------- 95.0/124.9 MB 4.7 MB/s eta 0:00:07
   ------------------------------ --------- 95.2/124.9 MB 4.7 MB/s eta 0:00:07
   ------------------------------ --------- 95.4/124.9 MB 4.7 MB/s eta 0:00:07
   ------------------------------ --------- 95.5/124.9 MB 4.7 MB/s eta 0:00:07
   ------------------------------ --------- 95.9/124.9 MB 4.8 MB/s eta 0:00:07
   ------------------------------ --------- 96.1/124.9 MB 4.8 MB/s eta 0:00:06
   ------------------------------ --------- 96.3/124.9 MB 4.8 MB/s eta 0:00:06
   ------------------------------ --------- 96.6/124.9 MB 4.9 MB/s eta 0:00:06
   ------------------------------ --------- 96.7/124.9 MB 4.8 MB/s eta 0:00:06
   ------------------------------- -------- 97.0/124.9 MB 4.8 MB/s eta 0:00:06
   ------------------------------- -------- 97.1/124.9 MB 4.7 MB/s eta 0:00:06
   ------------------------------- -------- 97.3/124.9 MB 4.8 MB/s eta 0:00:06
   ------------------------------- -------- 97.6/124.9 MB 4.8 MB/s eta 0:00:06
   ------------------------------- -------- 97.8/124.9 MB 4.8 MB/s eta 0:00:06
   ------------------------------- -------- 97.9/124.9 MB 4.9 MB/s eta 0:00:06
   ------------------------------- -------- 98.1/124.9 MB 4.8 MB/s eta 0:00:06
   ------------------------------- -------- 98.3/124.9 MB 4.8 MB/s eta 0:00:06
   ------------------------------- -------- 98.6/124.9 MB 4.9 MB/s eta 0:00:06
   ------------------------------- -------- 98.8/124.9 MB 5.1 MB/s eta 0:00:06
   ------------------------------- -------- 99.1/124.9 MB 5.1 MB/s eta 0:00:06
   ------------------------------- -------- 99.3/124.9 MB 5.0 MB/s eta 0:00:06
   ------------------------------- -------- 99.5/124.9 MB 5.0 MB/s eta 0:00:06
   ------------------------------- -------- 99.7/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 100.0/124.9 MB 5.1 MB/s eta 0:00:05
   -------------------------------- ------- 100.2/124.9 MB 5.1 MB/s eta 0:00:05
   -------------------------------- ------- 100.4/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 100.7/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 101.0/124.9 MB 5.1 MB/s eta 0:00:05
   -------------------------------- ------- 101.2/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 101.3/124.9 MB 5.1 MB/s eta 0:00:05
   -------------------------------- ------- 101.5/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 101.8/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 101.9/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 102.2/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 102.4/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 102.4/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 102.4/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 102.4/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 102.4/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 102.4/124.9 MB 5.0 MB/s eta 0:00:05
   -------------------------------- ------- 102.4/124.9 MB 4.4 MB/s eta 0:00:06
   -------------------------------- ------- 102.5/124.9 MB 4.4 MB/s eta 0:00:06
   -------------------------------- ------- 102.6/124.9 MB 4.3 MB/s eta 0:00:06
   -------------------------------- ------- 102.6/124.9 MB 4.3 MB/s eta 0:00:06
   -------------------------------- ------- 102.9/124.9 MB 4.2 MB/s eta 0:00:06
   -------------------------------- ------- 103.0/124.9 MB 4.2 MB/s eta 0:00:06
   --------------------------------- ------ 103.3/124.9 MB 4.2 MB/s eta 0:00:06
   --------------------------------- ------ 103.5/124.9 MB 4.3 MB/s eta 0:00:06
   --------------------------------- ------ 103.8/124.9 MB 4.3 MB/s eta 0:00:05
   --------------------------------- ------ 104.1/124.9 MB 4.3 MB/s eta 0:00:05
   --------------------------------- ------ 104.3/124.9 MB 4.3 MB/s eta 0:00:05
   --------------------------------- ------ 104.5/124.9 MB 4.3 MB/s eta 0:00:05
   --------------------------------- ------ 104.7/124.9 MB 4.3 MB/s eta 0:00:05
   --------------------------------- ------ 104.8/124.9 MB 4.2 MB/s eta 0:00:05
   --------------------------------- ------ 105.0/124.9 MB 4.2 MB/s eta 0:00:05
   --------------------------------- ------ 105.1/124.9 MB 4.2 MB/s eta 0:00:05
   --------------------------------- ------ 105.1/124.9 MB 4.2 MB/s eta 0:00:05
   --------------------------------- ------ 105.1/124.9 MB 4.2 MB/s eta 0:00:05
   --------------------------------- ------ 105.2/124.9 MB 4.1 MB/s eta 0:00:05
   --------------------------------- ------ 105.3/124.9 MB 4.0 MB/s eta 0:00:05
   --------------------------------- ------ 105.5/124.9 MB 4.0 MB/s eta 0:00:05
   --------------------------------- ------ 105.5/124.9 MB 4.0 MB/s eta 0:00:05
   --------------------------------- ------ 105.6/124.9 MB 4.0 MB/s eta 0:00:05
   --------------------------------- ------ 105.8/124.9 MB 4.0 MB/s eta 0:00:05
   --------------------------------- ------ 105.9/124.9 MB 3.9 MB/s eta 0:00:05
   --------------------------------- ------ 106.0/124.9 MB 3.9 MB/s eta 0:00:05
   ---------------------------------- ----- 106.2/124.9 MB 3.9 MB/s eta 0:00:05
   ---------------------------------- ----- 106.3/124.9 MB 3.9 MB/s eta 0:00:05
   ---------------------------------- ----- 106.6/124.9 MB 3.9 MB/s eta 0:00:05
   ---------------------------------- ----- 106.8/124.9 MB 3.8 MB/s eta 0:00:05
   ---------------------------------- ----- 107.0/124.9 MB 3.9 MB/s eta 0:00:05
   ---------------------------------- ----- 107.1/124.9 MB 3.9 MB/s eta 0:00:05
   ---------------------------------- ----- 107.3/124.9 MB 3.8 MB/s eta 0:00:05
   ---------------------------------- ----- 107.5/124.9 MB 3.8 MB/s eta 0:00:05
   ---------------------------------- ----- 107.6/124.9 MB 3.8 MB/s eta 0:00:05
   ---------------------------------- ----- 107.7/124.9 MB 3.8 MB/s eta 0:00:05
   ---------------------------------- ----- 107.9/124.9 MB 3.8 MB/s eta 0:00:05
   ---------------------------------- ----- 108.1/124.9 MB 3.7 MB/s eta 0:00:05
   ---------------------------------- ----- 108.2/124.9 MB 3.7 MB/s eta 0:00:05
   ---------------------------------- ----- 108.4/124.9 MB 3.7 MB/s eta 0:00:05
   ---------------------------------- ----- 108.5/124.9 MB 3.7 MB/s eta 0:00:05
   ---------------------------------- ----- 108.7/124.9 MB 3.7 MB/s eta 0:00:05
   ---------------------------------- ----- 108.7/124.9 MB 3.7 MB/s eta 0:00:05
   ---------------------------------- ----- 108.9/124.9 MB 3.6 MB/s eta 0:00:05
   ---------------------------------- ----- 109.0/124.9 MB 3.6 MB/s eta 0:00:05
   ---------------------------------- ----- 109.3/124.9 MB 3.6 MB/s eta 0:00:05
   ----------------------------------- ---- 109.4/124.9 MB 3.6 MB/s eta 0:00:05
   ----------------------------------- ---- 109.6/124.9 MB 3.6 MB/s eta 0:00:05
   ----------------------------------- ---- 109.8/124.9 MB 3.6 MB/s eta 0:00:05
   ----------------------------------- ---- 109.9/124.9 MB 3.5 MB/s eta 0:00:05
   ----------------------------------- ---- 110.2/124.9 MB 3.6 MB/s eta 0:00:05
   ----------------------------------- ---- 110.3/124.9 MB 3.5 MB/s eta 0:00:05
   ----------------------------------- ---- 110.5/124.9 MB 3.5 MB/s eta 0:00:05
   ----------------------------------- ---- 110.7/124.9 MB 3.5 MB/s eta 0:00:05
   ----------------------------------- ---- 111.0/124.9 MB 3.5 MB/s eta 0:00:04
   ----------------------------------- ---- 111.0/124.9 MB 3.5 MB/s eta 0:00:04
   ----------------------------------- ---- 111.2/124.9 MB 3.4 MB/s eta 0:00:05
   ----------------------------------- ---- 111.4/124.9 MB 3.4 MB/s eta 0:00:04
   ----------------------------------- ---- 111.6/124.9 MB 3.5 MB/s eta 0:00:04
   ----------------------------------- ---- 111.8/124.9 MB 3.4 MB/s eta 0:00:04
   ----------------------------------- ---- 111.9/124.9 MB 3.4 MB/s eta 0:00:04
   ----------------------------------- ---- 112.0/124.9 MB 3.4 MB/s eta 0:00:04
   ----------------------------------- ---- 112.3/124.9 MB 3.4 MB/s eta 0:00:04
   ------------------------------------ --- 112.5/124.9 MB 3.4 MB/s eta 0:00:04
   ------------------------------------ --- 112.7/124.9 MB 3.7 MB/s eta 0:00:04
   ------------------------------------ --- 112.7/124.9 MB 3.7 MB/s eta 0:00:04
   ------------------------------------ --- 113.0/124.9 MB 3.8 MB/s eta 0:00:04
   ------------------------------------ --- 113.2/124.9 MB 3.8 MB/s eta 0:00:04
   ------------------------------------ --- 113.5/124.9 MB 3.8 MB/s eta 0:00:03
   ------------------------------------ --- 113.8/124.9 MB 3.8 MB/s eta 0:00:03
   ------------------------------------ --- 114.0/124.9 MB 3.8 MB/s eta 0:00:03
   ------------------------------------ --- 114.2/124.9 MB 3.8 MB/s eta 0:00:03
   ------------------------------------ --- 114.4/124.9 MB 3.8 MB/s eta 0:00:03
   ------------------------------------ --- 114.7/124.9 MB 3.8 MB/s eta 0:00:03
   ------------------------------------ --- 114.9/124.9 MB 3.8 MB/s eta 0:00:03
   ------------------------------------ --- 115.2/124.9 MB 3.9 MB/s eta 0:00:03
   ------------------------------------ --- 115.4/124.9 MB 4.0 MB/s eta 0:00:03
   ------------------------------------- -- 115.7/124.9 MB 4.1 MB/s eta 0:00:03
   ------------------------------------- -- 115.8/124.9 MB 4.2 MB/s eta 0:00:03
   ------------------------------------- -- 116.1/124.9 MB 4.2 MB/s eta 0:00:03
   ------------------------------------- -- 116.4/124.9 MB 4.3 MB/s eta 0:00:02
   ------------------------------------- -- 116.7/124.9 MB 4.3 MB/s eta 0:00:02
   ------------------------------------- -- 116.9/124.9 MB 4.4 MB/s eta 0:00:02
   ------------------------------------- -- 117.1/124.9 MB 4.4 MB/s eta 0:00:02
   ------------------------------------- -- 117.2/124.9 MB 4.3 MB/s eta 0:00:02
   ------------------------------------- -- 117.4/124.9 MB 4.4 MB/s eta 0:00:02
   ------------------------------------- -- 117.6/124.9 MB 4.3 MB/s eta 0:00:02
   ------------------------------------- -- 117.7/124.9 MB 4.3 MB/s eta 0:00:02
   ------------------------------------- -- 118.0/124.9 MB 4.4 MB/s eta 0:00:02
   ------------------------------------- -- 118.2/124.9 MB 4.4 MB/s eta 0:00:02
   ------------------------------------- -- 118.5/124.9 MB 4.5 MB/s eta 0:00:02
   ------------------------------------- -- 118.6/124.9 MB 4.5 MB/s eta 0:00:02
   -------------------------------------- - 118.9/124.9 MB 4.5 MB/s eta 0:00:02
   -------------------------------------- - 119.1/124.9 MB 4.6 MB/s eta 0:00:02
   -------------------------------------- - 119.4/124.9 MB 4.6 MB/s eta 0:00:02
   -------------------------------------- - 119.5/124.9 MB 4.6 MB/s eta 0:00:02
   -------------------------------------- - 119.7/124.9 MB 4.6 MB/s eta 0:00:02
   -------------------------------------- - 120.0/124.9 MB 4.6 MB/s eta 0:00:02
   -------------------------------------- - 120.2/124.9 MB 4.7 MB/s eta 0:00:02
   -------------------------------------- - 120.4/124.9 MB 4.7 MB/s eta 0:00:01
   -------------------------------------- - 120.6/124.9 MB 4.7 MB/s eta 0:00:01
   -------------------------------------- - 120.8/124.9 MB 4.8 MB/s eta 0:00:01
   -------------------------------------- - 121.1/124.9 MB 4.8 MB/s eta 0:00:01
   -------------------------------------- - 121.3/124.9 MB 4.8 MB/s eta 0:00:01
   -------------------------------------- - 121.6/124.9 MB 4.9 MB/s eta 0:00:01
   ---------------------------------------  121.9/124.9 MB 4.9 MB/s eta 0:00:01
   ---------------------------------------  122.1/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  122.3/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  122.5/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  122.7/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  123.0/124.9 MB 5.1 MB/s eta 0:00:01
   ---------------------------------------  123.2/124.9 MB 5.1 MB/s eta 0:00:01
   ---------------------------------------  123.5/124.9 MB 5.1 MB/s eta 0:00:01
   ---------------------------------------  123.7/124.9 MB 5.1 MB/s eta 0:00:01
   ---------------------------------------  123.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.0/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.2/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.5/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.6/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.8/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------  124.9/124.9 MB 5.0 MB/s eta 0:00:01
   ---------------------------------------- 124.9/124.9 MB 3.5 MB/s eta 0:00:00
Installing collected packages: xgboost
Successfully installed xgboost-2.1.3
[notice] A new release of pip is available: 23.2.1 -> 24.3.1
[notice] To update, run: python.exe -m pip install --upgrade pip
In [4]:
import pandas as pd
from xgboost import XGBRegressor
from sklearn.model_selection import GridSearchCV, train_test_split
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.decomposition import PCA
import numpy as np
import lime.lime_tabular

# Load the dataset
data = pd.read_excel(r"C:/Users/dhanu/OneDrive/Desktop/machine learning/ML TRAIN DATASETS/gpt2 embeddings.xlsx")

# Drop any irrelevant columns, such as text or index columns
data = data.drop(columns=['Equation', 'GPT2_Embedding'], errors='ignore')

# Features and target variable
X = data.iloc[:, :-1]  # All columns except the last one
y = data['output']     # Target variable

# Scale the target variable (y) to range [0, 5] using MinMaxScaler
scaler_y = MinMaxScaler(feature_range=(0, 5))
y_scaled = scaler_y.fit_transform(y.values.reshape(-1, 1)).flatten()

# Standardize the features
scaler_X = StandardScaler()
X_scaled = scaler_X.fit_transform(X)

# Apply PCA for dimensionality reduction
pca = PCA(n_components=0.99)  # Preserve 95% of variance
X_pca = pca.fit_transform(X_scaled)

# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X_pca, y_scaled, test_size=0.2, random_state=42)

# XGBoost model
model = XGBRegressor(random_state=42, n_jobs=-1)

# Hyperparameter tuning grid
param_grid = {
    'n_estimators': [100, 200],
    'max_depth': [3, 6],
    'learning_rate': [0.01, 0.1],
    'subsample': [0.8, 1.0]
}

# Hyperparameter tuning
print(f"Training and hyperparameter tuning for XGBoost...")
grid_search = GridSearchCV(model, param_grid, cv=5, scoring='neg_mean_squared_error', n_jobs=-1)
grid_search.fit(X_train, y_train)
best_model = grid_search.best_estimator_
print(f"Best XGBoost model: {grid_search.best_params_}")

# Evaluate the model on the test data
y_pred_scaled = best_model.predict(X_test)

# Clip predictions to the range [0, 5] to ensure valid outputs
y_pred_scaled_clipped = np.clip(y_pred_scaled, 0, 5)

# Evaluate performance metrics on the scaled target
test_rmse = np.sqrt(mean_squared_error(y_test, y_pred_scaled_clipped))
test_r2 = r2_score(y_test, y_pred_scaled_clipped)

print(f"\nTest RMSE (scaled): {test_rmse}")
print(f"Test R² (scaled): {test_r2}")

# Rescale the predictions and test target back to original range for final evaluation
y_pred_original = scaler_y.inverse_transform(y_pred_scaled_clipped.reshape(-1, 1)).flatten()
y_test_original = scaler_y.inverse_transform(y_test.reshape(-1, 1)).flatten()

original_rmse = np.sqrt(mean_squared_error(y_test_original, y_pred_original))
original_r2 = r2_score(y_test_original, y_pred_original)

print(f"\nTest RMSE (original): {original_rmse}")
print(f"Test R² (original): {original_r2}")

# LIME Explanation
print(f"\nLIME Explanation for XGBoost:")
explainer = lime.lime_tabular.LimeTabularExplainer(
    X_train, 
    training_labels=y_train, 
    mode='regression', 
    verbose=True, 
    feature_names=[f'PCA_{i+1}' for i in range(X_train.shape[1])], 
    feature_selection='auto'
)
lime_exp = explainer.explain_instance(X_test[0], best_model.predict, num_features=5)
lime_exp.show_in_notebook()
Training and hyperparameter tuning for XGBoost...
Best XGBoost model: {'learning_rate': 0.1, 'max_depth': 3, 'n_estimators': 200, 'subsample': 0.8}

Test RMSE (scaled): 0.5379931539011944
Test R² (scaled): 0.8863073328246962

Test RMSE (original): 0.5379931539011944
Test R² (original): 0.8863073328246962

LIME Explanation for XGBoost:
Intercept 2.2861861945768602
Prediction_local [4.61143288]
Right: 4.9445276
In [9]:
import pandas as pd
from sklearn.ensemble import AdaBoostRegressor
from sklearn.model_selection import GridSearchCV, train_test_split
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.decomposition import PCA
import numpy as np
import lime.lime_tabular

# Load the dataset
data = pd.read_excel(r"C:/Users/dhanu/OneDrive/Desktop/machinelearning rajeev/ML TRAIN DATASETS/gpt2 embeddings.xlsx")

# Drop any irrelevant columns, such as text or index columns
data = data.drop(columns=['Equation', 'GPT2_Embedding'], errors='ignore')

# Features and target variable
X = data.iloc[:, :-1]  # All columns except the last one
y = data['output']     # Target variable

# Scale the target variable (y) to range [0, 5] using MinMaxScaler
scaler_y = MinMaxScaler(feature_range=(0, 5))
y_scaled = scaler_y.fit_transform(y.values.reshape(-1, 1)).flatten()

# Standardize the features
scaler_X = StandardScaler()
X_scaled = scaler_X.fit_transform(X)

# Apply PCA for dimensionality reduction
pca = PCA(n_components=0.99)  # Preserve 99% of variance
X_pca = pca.fit_transform(X_scaled)

# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X_pca, y_scaled, test_size=0.2, random_state=42)

# AdaBoost model
model = AdaBoostRegressor(random_state=42)

# Hyperparameter tuning grid
param_grid = {
    'n_estimators': [50, 100],             # Number of boosting rounds
    'learning_rate': [0.01, 0.1],         # Learning rate
    'loss': ['linear', 'square']           # Loss function options
}

# Hyperparameter tuning
print(f"Training and hyperparameter tuning for AdaBoost...")
grid_search = GridSearchCV(model, param_grid, cv=5, scoring='neg_mean_squared_error', n_jobs=-1)
grid_search.fit(X_train, y_train)
best_model = grid_search.best_estimator_
print(f"Best AdaBoost model: {grid_search.best_params_}")

# Evaluate the model on the test data
y_pred_scaled = best_model.predict(X_test)

# Clip predictions to the range [0, 5] to ensure valid outputs
y_pred_scaled_clipped = np.clip(y_pred_scaled, 0, 5)

# Evaluate performance metrics on the scaled target
test_rmse = np.sqrt(mean_squared_error(y_test, y_pred_scaled_clipped))
test_r2 = r2_score(y_test, y_pred_scaled_clipped)

print(f"\nTest RMSE (scaled): {test_rmse}")
print(f"Test R² (scaled): {test_r2}")

# Rescale the predictions and test target back to original range for final evaluation
y_pred_original = scaler_y.inverse_transform(y_pred_scaled_clipped.reshape(-1, 1)).flatten()
y_test_original = scaler_y.inverse_transform(y_test.reshape(-1, 1)).flatten()

original_rmse = np.sqrt(mean_squared_error(y_test_original, y_pred_original))
original_r2 = r2_score(y_test_original, y_pred_original)

print(f"\nTest RMSE (original): {original_rmse}")
print(f"Test R² (original): {original_r2}")

# LIME Explanation for AdaBoost
print(f"\nLIME Explanation for AdaBoost:")
explainer = lime.lime_tabular.LimeTabularExplainer(
    X_train, 
    training_labels=y_train, 
    mode='regression', 
    verbose=True, 
    feature_names=[f'PCA_{i+1}' for i in range(X_train.shape[1])], 
    feature_selection='auto'
)
lime_exp = explainer.explain_instance(X_test[0], best_model.predict, num_features=5)
lime_exp.show_in_notebook()
Training and hyperparameter tuning for AdaBoost...
Best AdaBoost model: {'learning_rate': 0.1, 'loss': 'square', 'n_estimators': 100}

Test RMSE (scaled): 0.8930218323009271
Test R² (scaled): 0.6867413228971462

Test RMSE (original): 0.8930218323009271
Test R² (original): 0.6867413228971462

LIME Explanation for AdaBoost:
Intercept 2.374324632689378
Prediction_local [4.24124174]
Right: 4.315950920245399
In [11]:
import pandas as pd
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.model_selection import GridSearchCV, train_test_split
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.decomposition import PCA
import numpy as np
import lime.lime_tabular

# Load the dataset
data = pd.read_excel(r"C:/Users/dhanu/OneDrive/Desktop/machinelearning rajeev/ML TRAIN DATASETS/gpt2 embeddings.xlsx")

# Drop any irrelevant columns, such as text or index columns
data = data.drop(columns=['Equation', 'GPT2_Embedding'], errors='ignore')

# Features and target variable
X = data.iloc[:, :-1]  # All columns except the last one
y = data['output']     # Target variable

# Scale the target variable (y) to range [0, 5] using MinMaxScaler
scaler_y = MinMaxScaler(feature_range=(0, 5))
y_scaled = scaler_y.fit_transform(y.values.reshape(-1, 1)).flatten()

# Standardize the features
scaler_X = StandardScaler()
X_scaled = scaler_X.fit_transform(X)

# Apply PCA for dimensionality reduction
pca = PCA(n_components=0.99)  # Preserve 99% of variance
X_pca = pca.fit_transform(X_scaled)

# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X_pca, y_scaled, test_size=0.2, random_state=42)

# Gradient Boosting model
model = GradientBoostingRegressor(random_state=42)

# Hyperparameter tuning grid
param_grid = {
    'n_estimators': [50, 100],             # Number of boosting rounds
    'learning_rate': [0.01, 0.1],         # Learning rate
    'max_depth': [3, 5],                   # Maximum depth of trees
    'subsample': [0.8, 1.0]                # Fraction of samples for each tree
}

# Hyperparameter tuning
print(f"Training and hyperparameter tuning for Gradient Boosting...")
grid_search = GridSearchCV(model, param_grid, cv=5, scoring='neg_mean_squared_error', n_jobs=-1)
grid_search.fit(X_train, y_train)
best_model = grid_search.best_estimator_
print(f"Best Gradient Boosting model: {grid_search.best_params_}")

# Evaluate the model on the test data
y_pred_scaled = best_model.predict(X_test)

# Clip predictions to the range [0, 5] to ensure valid outputs
y_pred_scaled_clipped = np.clip(y_pred_scaled, 0, 5)

# Evaluate performance metrics on the scaled target
test_rmse = np.sqrt(mean_squared_error(y_test, y_pred_scaled_clipped))
test_r2 = r2_score(y_test, y_pred_scaled_clipped)

print(f"\nTest RMSE (scaled): {test_rmse}")
print(f"Test R² (scaled): {test_r2}")

# Rescale the predictions and test target back to original range for final evaluation
y_pred_original = scaler_y.inverse_transform(y_pred_scaled_clipped.reshape(-1, 1)).flatten()
y_test_original = scaler_y.inverse_transform(y_test.reshape(-1, 1)).flatten()

original_rmse = np.sqrt(mean_squared_error(y_test_original, y_pred_original))
original_r2 = r2_score(y_test_original, y_pred_original)

print(f"\nTest RMSE (original): {original_rmse}")
print(f"Test R² (original): {original_r2}")

# LIME Explanation for Gradient Boosting
print(f"\nLIME Explanation for Gradient Boosting:")
explainer = lime.lime_tabular.LimeTabularExplainer(
    X_train, 
    training_labels=y_train, 
    mode='regression', 
    verbose=True, 
    feature_names=[f'PCA_{i+1}' for i in range(X_train.shape[1])], 
    feature_selection='auto'
)
lime_exp = explainer.explain_instance(X_test[0], best_model.predict, num_features=5)
lime_exp.show_in_notebook()
Training and hyperparameter tuning for Gradient Boosting...
Best Gradient Boosting model: {'learning_rate': 0.1, 'max_depth': 5, 'n_estimators': 100, 'subsample': 1.0}

Test RMSE (scaled): 0.5340575369073891
Test R² (scaled): 0.8879646556234895

Test RMSE (original): 0.5340575369073891
Test R² (original): 0.8879646556234895

LIME Explanation for Gradient Boosting:
Intercept 2.219734702808563
Prediction_local [4.96236573]
Right: 5.006394938266051
In [12]:
import pandas as pd
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import GridSearchCV, train_test_split, cross_val_score
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.decomposition import PCA
import numpy as np
import lime.lime_tabular

# Load the dataset
data = pd.read_excel(r"C:/Users/dhanu/OneDrive/Desktop/machinelearning rajeev/ML TRAIN DATASETS/gpt2 embeddings.xlsx")

# Drop any irrelevant columns, such as text or index columns
data = data.drop(columns=['Equation', 'GPT2_Embedding'], errors='ignore')

# Features and target variable
X = data.iloc[:, :-1]  # All columns except the last one
y = data['output']     # Target variable

# Scale the target variable (y) to range [0, 5] using MinMaxScaler
scaler_y = MinMaxScaler(feature_range=(0, 5))
y_scaled = scaler_y.fit_transform(y.values.reshape(-1, 1)).flatten()

# Standardize the features
scaler_X = StandardScaler()
X_scaled = scaler_X.fit_transform(X)

# Apply PCA for dimensionality reduction
pca = PCA(n_components=0.99)  # Preserve 99% of variance
X_pca = pca.fit_transform(X_scaled)

# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X_pca, y_scaled, test_size=0.2, random_state=42)

# Random Forest model
model = RandomForestRegressor(random_state=42)

# Hyperparameter tuning grid
param_grid = {
    'n_estimators': [50, 100],             # Number of trees in the forest
    'max_depth': [3, 5, 10],               # Maximum depth of trees
    'min_samples_split': [2, 5],           # Minimum number of samples required to split an internal node
    'min_samples_leaf': [1, 2],            # Minimum number of samples required to be at a leaf node
    'bootstrap': [True, False]             # Whether bootstrap samples are used when building trees
}

# Hyperparameter tuning
print(f"Training and hyperparameter tuning for Random Forest...")
grid_search = GridSearchCV(model, param_grid, cv=5, scoring='neg_mean_squared_error', n_jobs=-1)
grid_search.fit(X_train, y_train)
best_model = grid_search.best_estimator_
print(f"Best Random Forest model: {grid_search.best_params_}")

# Cross-validation performance on the training set for RMSE and R²
train_cv_r2_scores = cross_val_score(best_model, X_train, y_train, cv=5, scoring='r2')
train_cv_rmse_scores = cross_val_score(best_model, X_train, y_train, cv=5, scoring='neg_mean_squared_error')

# Mean and Standard Deviation for R² and RMSE
train_cv_mean_r2 = train_cv_r2_scores.mean()
train_cv_std_r2 = train_cv_r2_scores.std()

train_cv_mean_rmse = np.sqrt(-train_cv_rmse_scores.mean())  # RMSE is negative, so negate to make it positive
train_cv_std_rmse = np.std(np.sqrt(-train_cv_rmse_scores))

# Output the cross-validation metrics on the training set
print(f"\nTraining CV Mean R²: {train_cv_mean_r2}")
print(f"Training CV Std R²: {train_cv_std_r2}")
print(f"Training CV Mean RMSE: {train_cv_mean_rmse}")
print(f"Training CV Std RMSE: {train_cv_std_rmse}")

# Evaluate the model on the test data
y_pred_scaled = best_model.predict(X_test)

# Clip predictions to the range [0, 5] to ensure valid outputs
y_pred_scaled_clipped = np.clip(y_pred_scaled, 0, 5)

# Evaluate performance metrics on the scaled target
test_rmse = np.sqrt(mean_squared_error(y_test, y_pred_scaled_clipped))
test_r2 = r2_score(y_test, y_pred_scaled_clipped)

print(f"\nTest RMSE (scaled): {test_rmse}")
print(f"Test R² (scaled): {test_r2}")

# Rescale the predictions and test target back to original range for final evaluation
y_pred_original = scaler_y.inverse_transform(y_pred_scaled_clipped.reshape(-1, 1)).flatten()
y_test_original = scaler_y.inverse_transform(y_test.reshape(-1, 1)).flatten()

original_rmse = np.sqrt(mean_squared_error(y_test_original, y_pred_original))
original_r2 = r2_score(y_test_original, y_pred_original)

print(f"\nTest RMSE (original): {original_rmse}")
print(f"Test R² (original): {original_r2}")

# LIME Explanation for Random Forest
print(f"\nLIME Explanation for Random Forest:")
explainer = lime.lime_tabular.LimeTabularExplainer(
    X_train, 
    training_labels=y_train, 
    mode='regression', 
    verbose=True, 
    feature_names=[f'PCA_{i+1}' for i in range(X_train.shape[1])], 
    feature_selection='auto'
)
lime_exp = explainer.explain_instance(X_test[0], best_model.predict, num_features=5)
lime_exp.show_in_notebook()
Training and hyperparameter tuning for Random Forest...
C:\Users\dhanu\AppData\Local\Programs\Python\Python312\Lib\site-packages\numpy\ma\core.py:2846: RuntimeWarning: invalid value encountered in cast
  _data = np.array(data, dtype=dtype, copy=copy,
Best Random Forest model: {'bootstrap': True, 'max_depth': 10, 'min_samples_leaf': 1, 'min_samples_split': 2, 'n_estimators': 100}

Training CV Mean R²: 0.8496690276245584
Training CV Std R²: 0.014404867628671353
Training CV Mean RMSE: 0.6001945837081203
Training CV Std RMSE: 0.03456105712198034

Test RMSE (scaled): 0.5866251008226896
Test R² (scaled): 0.8648237979301048

Test RMSE (original): 0.5866251008226896
Test R² (original): 0.8648237979301048

LIME Explanation for Random Forest:
Intercept 2.326102091561775
Prediction_local [4.52145161]
Right: 4.9707451401738805
In [ ]:
import pandas as pd
from sklearn.svm import SVR
from sklearn.model_selection import GridSearchCV, train_test_split, cross_val_score
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.decomposition import PCA
import numpy as np
import lime.lime_tabular

# Load the dataset
data = pd.read_excel(r"C:/Users/dhanu/OneDrive/Desktop/machinelearning rajeev/ML TRAIN DATASETS/gpt2 embeddings.xlsx")

# Drop any irrelevant columns, such as text or index columns
data = data.drop(columns=['Equation', 'GPT2_Embedding'], errors='ignore')

# Features and target variable
X = data.iloc[:, :-1]  # All columns except the last one
y = data['output']     # Target variable

# Scale the target variable (y) to range [0, 5] using MinMaxScaler
scaler_y = MinMaxScaler(feature_range=(0, 5))
y_scaled = scaler_y.fit_transform(y.values.reshape(-1, 1)).flatten()

# Standardize the features
scaler_X = StandardScaler()
X_scaled = scaler_X.fit_transform(X)

# Apply PCA for dimensionality reduction
pca = PCA(n_components=0.99)  # Preserve 99% of variance
X_pca = pca.fit_transform(X_scaled)

# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X_pca, y_scaled, test_size=0.2, random_state=42)

# SVR model
model = SVR()

# Hyperparameter tuning grid
param_grid = {
    'kernel': ['linear', 'poly', 'rbf'],  # Kernel function to use
    'C': [0.1, 1, 10],                    # Regularization parameter
    'epsilon': [0.01, 0.1, 0.2],          # Epsilon parameter in the loss function
    'gamma': ['scale', 'auto']            # Kernel coefficient for 'rbf', 'poly', etc.
}

# Hyperparameter tuning
print(f"Training and hyperparameter tuning for SVR...")
grid_search = GridSearchCV(model, param_grid, cv=5, scoring='neg_mean_squared_error', n_jobs=-1)
grid_search.fit(X_train, y_train)
best_model = grid_search.best_estimator_
print(f"Best SVR model: {grid_search.best_params_}")

# Cross-validation performance on the training set for RMSE and R²
train_cv_r2_scores = cross_val_score(best_model, X_train, y_train, cv=5, scoring='r2')
train_cv_rmse_scores = cross_val_score(best_model, X_train, y_train, cv=5, scoring='neg_mean_squared_error')

# Mean and Standard Deviation for R² and RMSE
train_cv_mean_r2 = train_cv_r2_scores.mean()
train_cv_std_r2 = train_cv_r2_scores.std()

train_cv_mean_rmse = np.sqrt(-train_cv_rmse_scores.mean())  # RMSE is negative, so negate to make it positive
train_cv_std_rmse = np.std(np.sqrt(-train_cv_rmse_scores))

# Output the cross-validation metrics on the training set
print(f"\nTraining CV Mean R²: {train_cv_mean_r2}")
print(f"Training CV Std R²: {train_cv_std_r2}")
print(f"Training CV Mean RMSE: {train_cv_mean_rmse}")
print(f"Training CV Std RMSE: {train_cv_std_rmse}")

# Evaluate the model on the test data
y_pred_scaled = best_model.predict(X_test)

# Clip predictions to the range [0, 5] to ensure valid outputs
y_pred_scaled_clipped = np.clip(y_pred_scaled, 0, 5)

# Evaluate performance metrics on the scaled target
test_rmse = np.sqrt(mean_squared_error(y_test, y_pred_scaled_clipped))
test_r2 = r2_score(y_test, y_pred_scaled_clipped)

print(f"\nTest RMSE (scaled): {test_rmse}")
print(f"Test R² (scaled): {test_r2}")

# Rescale the predictions and test target back to original range for final evaluation
y_pred_original = scaler_y.inverse_transform(y_pred_scaled_clipped.reshape(-1, 1)).flatten()
y_test_original = scaler_y.inverse_transform(y_test.reshape(-1, 1)).flatten()

original_rmse = np.sqrt(mean_squared_error(y_test_original, y_pred_original))
original_r2 = r2_score(y_test_original, y_pred_original)

print(f"\nTest RMSE (original): {original_rmse}")
print(f"Test R² (original): {original_r2}")

# LIME Explanation for SVR
print(f"\nLIME Explanation for SVR:")
explainer = lime.lime_tabular.LimeTabularExplainer(
    X_train, 
    training_labels=y_train, 
    mode='regression', 
    verbose=True, 
    feature_names=[f'PCA_{i+1}' for i in range(X_train.shape[1])], 
    feature_selection='auto'
)
lime_exp = explainer.explain_instance(X_test[0], best_model.predict, num_features=5)
lime_exp.show_in_notebook()
Training and hyperparameter tuning for SVR...
In [ ]: